0

最初に出現した MyString のインデックスを返す必要があるプログラムを実行しています。この状況でindexofを使用する方法をidkします。ch = indexof[] のようなものかもしれないと思いますが、よくわかりません。私はまだこれに慣れていないので、APIはあまり役に立ちませんでした

/*********************************************************************************
     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; 


    }
4

3 に答える 3

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
}
于 2012-11-13T05:23:38.977 に答える
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を返します。それ以外の場合は を返します。

于 2012-11-13T05:24:57.900 に答える
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;

    }
于 2012-11-13T05:25:46.837 に答える