2016-10-01 87 views
-1

我只想问一下这个for循环我做了。我有一个字符串名为内容“NameXesme esmeXMobileX2903489283482903X NameXmer merXMobileX0697905967X”的字符串值。java for循环没有产生预期的结果

我的for循环如下:

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

什么期望在我numberTxt组件可以看出(的JTextField)为 “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'内部有一个'break'(如果你这样做的话,不要忘记'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' –