2016-10-01 4 views
-1

저는 루프에 대해 묻고 싶습니다. 나는 문자열 "NameXesme esmeXMobileX2903489283482903X NameXmer merXMobileX0697905967X"의 문자열 값 내용 이름이있다. 다음과 같이 루프java 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' 내에'중단 '이 필요할 것입니다 (그렇게하면'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'과 연결합니다. –

관련 문제