원인 루프를 들어 쌌다 : UserInputViaCommand: match1, match2
다음과 같이 내 출력을 얻을려고 문제
를하지만이 표시됩니다 :
UserInputViaCommand: match1, UserInputViaCommand: match2
나는이 첫 번째 내부에있는 루프에 대한 두 번째로 인한 알고, 그러나 나는 원하는 출력물을 얻는 것에 대해 확신 할 수 없다.
내 프로그램과 같이 명령 줄에서 실행 : java program name1 name2 < names.txt
내가 파일을 읽고 그 안에 이름을 정상화하고 사용자의 입력을 읽고 동일한 작업을 수행하고 그들을 인쇄 일치하는 경우.
try {
InputReader = new BufferedReader(new InputStreamReader(System.in));
while ((nameFile = InputReader.readLine()) != null) {
//Normalising the input to find matches
nameFromFile = normalize(nameFile);
//Looping through each argument
for (int j = 0; j < ags.length; j++) {
// Appending text to the string builder
//Output.append(ags[j] + ":" + " ");
//Normalising the input to find matches
String result = normalize(ags[j]);
if (nameFromFile.equalsIgnoreCase(result)) {
Output.append(ags[j] + ":" + " " + nameFile + ", ");
//Output.append(ags[j] + ":" + " ");
//Output.append(nameFile + ", ");
}
}
}
System.out.println(Output);
}
catch (IOException e) {
System.out.println(e.getMessage());
}
흥미로운'for' 루프입니다. 왜 while 루프를 사용하지 않습니까? 당신은 기본적으로 그것을 '잠시'로 만들었습니다. – crush
@crush 나는 변화의 미친 양을 만들었습니다, 나는 그것이 한 단계에서 while 루프라고 생각합니다. 나는 그것을 되돌려 놓고 내가 그걸 가지고 놀 수 있는지 알아볼 것이다. :) while 루프로 변경됨 :) –
예제 출력이 코드와 일치하지 않는 것 같습니다. 결과물은'Name1 : name1, name2 : name2'와 같이 더 좋아야합니다. 그래서 그 동안 뭔가를 변경했거나 생략 한 코드가 중요한 부분입니다. –