2012-11-13 54 views
0

即时做一个程序,我需要返回第一次出现MyString的索引。 idk如何在这种情况下使用indexof。我认为这可能是类似于 ch = indexof []但我不确定。 IM在这个仍然是新和API没有帮助我很多使用字符串indexOf java

/********************************************************************************* 
    This program will create classes that do similar operations to the Java String 

    Javier Perez 
    csc110 
    11/5/12 
    *********************************************************************************/ 
    package string.assignment; 
    public class MyString 
    { 

     private char[] array; 
     private int size; 
     private int max; 

     public MyString() 
     { 
      array = new char[25]; 
      max = 25; 
     } 
     public void setString(String newString) 
     { 
     if(newString.length() > 25) 
     { 
      System.out.println("/nEnter a number equal or less than 25 "); 

     } 
     else 
     { 
      for(int i=0; i < newString.length(); i++) 
      { 
      array[i] = newString.charAt(i); 
      } 
     } 
     } 


     public String toString() 
     { 
      return new String(array); 
     } 

     public char charAt(int index) 
     { 
      return array[index]; 
     } 

     public boolean contains(char ch) 
     { 
      for(char c: array) 
      { 
       if(c == ch) return true; 
      } 
      return false; 
     } 
     public int indexOf(char ch) 
     { 
      ch = ch.indexOf(); 

     } 
     return index; 


    } 
+0

这是否甚至编译? – smk

+1

也许[尝试文档?](http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#indexOf(int)) – Xymostech

+0

即时只做了一半,但它确实编译 – javip

回答

1

取出来自您的阵列中的某些字符的索引,你就必须迭代这个数组,每个字符用你想在一个比较检查。如果有任何字符匹配,请立即返回索引。

此外,您的最后一个return语句应该在您的方法中,否则您的代码将无法编译。

所以,你以最简单的方法indexOf会是这样: -

public int indexOf(char ch) { 
    for (int i = 0; i < array.length; i++) { 
     if (array[i] == ch) { 
      return i; // Character found, return current index 
     } 
    } 
    return -1; // Character not found. Return -1 
} 
1

遍历你的字符数组,在数组中的索引对阵字符所需的字符。如果找到匹配项,而不是index变量中具有默认值-1的位置并打破循环。返回方法中的index值。

 public int indexOf(char ch){ 
     int index = -1; 
     for(int i=0; i < array.length; i++){ 
     if(array[i] == ch){ 
      index = i;//first match found, stop searching 
      break; 
     } 
     } 
     return index; 
    } 

通过这种方式,它返回字符串的字符阵列中的字符的第一匹配位置,否则返回-1

1

如果确实能够编译,那么您的剪切和粘贴就会很糟糕 - 那么最后的return index会做什么?

无论如何 - 不是我用过你自己的charAt,而不仅仅是一个字符比较。

public int indexOf(char ch) 
    { 
     int result = -1; 
     for(int i = 0; i < size; i++) { 
      if (charAt(i) == ch) { 
       result = i; 
       break; 
      } 
     } 
     return result; 

    } 
相关问题