2016-10-01 16 views
-1

私はこのループについて私がしたことについて尋ねたいと思います。私は"NameXesme esmeXMobileX2903489283482903X NameXmer merXMobileX0697905967X"の文字列値を持つコンテンツという名前の文字列を持っています。次のようにforループjava forループが期待した結果を生成しない

私は次のようになります(JTextFieldの)私のnumberTxtコンポーネントで見られることを期待して何

for(int j = 0; j < content.length(); j++){ 
     if(Character.toString(content.charAt(j)).equalsIgnoreCase("n")) 
      numberTxt.setText(content.charAt(j)+""+j); } 

は "N0"(NZERO)ですが、出力は私がよ見て "N41"です。

for(int j = 0; j < content.length(); j++){ 
    if(content.charAt(j) == 'N') numberTxt.setText(content.charAt(j)+""+j); } 

他のコードを実行しましたが、まだ正しい結果が得られていません。私は正しいことをしていますか?または私はここで何かを逃したのですか?

休憩声明の不足に気づいた、先に質問を削除するのに十分な時間がありませんでした。

+1

a)コードを正しくフォーマットしてください。読みにくいです。 b)文字 'n'の*最初の出現を望むなら、おそらく' if'の中で '中断 'が必要です(もし' if'ブロックの中括弧を忘れないでください)。今は、ループが各文字を繰り返し、最後の出現が印刷されます(実際には、すべての出現がテキストフィールドに表示されますが、最後に表示されます)。 – Turing85

答えて

2

あなたの弦にはNが複数回含まれています。 最初に出現したい場合は、breakループ。 これを試すことができます:

for(int j = 0; j < content.length(); j++){ 
    if(content.charAt(j) == 'N'){ 
     numberTxt.setText(content.charAt(j)+""+j); 
     break; 
    } 
} 
+1

代わりに 'indexOf'を使用して、それを' N'と連結することができました –

関連する問題