2017-10-23 10 views
-3
/* returns the index of the first occurrence of any of the 
* characters in chars in String s or -1 if none of the characters 
* in chars are found in s. */ 

上記の手順は、以下は私のコードです。言い換えれする文字列内の別の文字列から任意の文字の最初の出現のインデックスを見つける方法は?

public static void main(String[] args){ 

    indexOfAny("kabomba","bomb"); 

} 

public static int indexOfAny(String s, String chars) { 

     int index = 0; 
     String rev = ""; 

     for(int i = s.length()-1;i>=0;i--){ 
      rev+=s.charAt(i); 
     } 

     String x = rev; 

     for(int i = 0;i<x.length();i++){ 

      for(int j = 0; j<chars.length();j++){ 
       if(x.charAt(i)==chars.charAt(j)){ 
        index = i;//** 
       }else { 
        index = -1; 
       } 
      } 
     } 
     System.out.println(index); 
     return index; 
    } 

、問題は、それが文字列のx最後の文字に到達し、文字列の文字が同じであると-1を返しますが、私はコードが終了して返すようにしたい場合は、比較する場所**であります文字列xの中の文字列から最後の文字が出現した後のiにおける文字列xのインデックス。

出力が4である必要があります。文字列の文字のうちの1つであるbのインデックスが、逆の文字列の中で4であるためです。

+3

スタックオーバーフローは、あなたが聞いたか、と言われて何にもかかわらず、無料の宿題のサービスではありません。 _あなたがコード内のどこに問題があるのか​​、または少なくともその問題に関する最善の見積もりを教えてください。 –

+0

あなたがループを突き止めたいときは、 'index = i;'の後に 'break;'を追加するといいでしょう。 –

+0

http://idownvotedbecau.se/noattempt/ – Alex

答えて

0

あなたはループを繰り返すために防ぐのStringUtilsクラスを使用することができます。 Here are the indexOf methods present. OR

You can use String.indexOf method which is present under string class.

+0

はい、私の間違いはindexOfです。 StringUtilsクラスでは、一度に複数の文字の位置を取得できるので、indexOfのメソッドが増えています。 –

+0

ありがとうございます。私はここに新しいです –

+0

[編集リンクはこちら](https://stackoverflow.com/posts/46881287/edit)。 – halfer

関連する問題