2016-10-01 3 views
-1

Ich möchte nur darüber für die Schleife fragen, die ich getan habe. Ich habe einen String Inhalt mit String-Wert von "NameXesme esmeXMobileX2903489283482903X NameXmer merXMobileX0697905967X" benannt.Java für Schleife produziert nicht erwartetes Ergebnis

Meine for-Schleife ist wie folgt:

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

Was in meiner numberTxt Komponente (JTextField) ist "N0" (NZero), aber der Ausgang Ich bin zu sehen erwarten Sehen ist "N41". Ich habe andere Codes, die ich kenne,

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

gemacht, aber ich bekomme immer noch nicht das richtige Ergebnis. Mache ich Dinge richtig? oder habe ich hier etwas verpasst?

Noticed der Mangel an Pause Anweisung, hatte nicht genug Zeit, um die Frage zu löschen.

+1

a) Sie formatieren Sie den Code richtig, es ist schwer zu lesen. b) Wenn Sie das * erste * Vorkommen des Buchstabens 'n' wünschen, brauchen Sie höchstwahrscheinlich eine' Pause' innerhalb des 'if' (vergessen Sie dabei nicht die geschweiften Klammern für den' if'-Block). Im Moment wird die Schleife über jedes Zeichen durchlaufen und das letzte Vorkommen wird gedruckt (tatsächlich werden alle Vorkommen im Textfeld angezeigt, aber Sie sehen nur das letzte Vorkommen). – Turing85

Antwort

2

Ihre Zeichenfolge enthält N mehrere Male. Wenn Sie das erste Vorkommen wollen, dann break Schleife. Sie können dies ausprobieren:

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

Konnte 'indexOf' stattdessen verwenden, dann verkette das mit' N' –

Verwandte Themen