2016-11-18 4 views
-2

いいえ午後、 2つの文字列に達して(尋ねる)メソッドを記述し、String2がString1の場合にチェックします。 s2がs1にある場合は、 のインデックスを返します。それ以外の場合は-1を返します。 lastIndexOf()メソッドを使うと簡単ですが、私はそれを望んでいません。実際には、便利な文字列メソッド(charAtとlengthを除く)を使用しないと、はるかに良いでしょう。lastIndexOf()を使用せずに文字列の最後のインデックスを印刷する

だから、ここに私のコードは、(それは本当に悪いコードです)今までです:

int contains() { 
    Scanner scan0 = new Scanner(System.in); 
     System.out.println("Enter firts string: "); 
    String s1 = scan0.nextLine(); 
     System.out.println("Enter second string: "); 
    String s2 = scan0.nextLine(); 

    for(int i = 0; i<s1.length(); i++) { 
     for(int t = 0; t<s2.length(); t++) { 
      char desiredChar = s2.charAt(t); 
      char letter = s1.charAt(i); 
      if(desiredChar == letter) 
       System.out.print(s2.charAt(i)); 
     } 

    } 
    return 0; 
} 

それはjava.lang.StringIndexOutOfBoundsExceptionエラーになります。

+0

なぜJavaの組み込みメソッドを使用したくないのですか?ここであなたのための調査を行う時間がないことを意味します。 –

+0

コードを更新しました。 – f1r4tc

答えて

1

s2の文字の出現をs1にチェックしません。 s1charcharで調べて、charとそれ以降が一致するものがs2であるかどうかを確認する必要があります。与えられた通りstringsがある場合は、s1を繰り返して、最初にchar=Mと次の2を取るので、s2のように3つの文字があります。 Mistheがあります。一致しないため、一致する文字列が見つかるまでissなどの次の文字と次の文字に進む必要があります。一度それらを持っていれば、s1の文字列の最初の文字のインデックスを返すことができます。

関連する問題