나는 다양한 스캐너 방법이 작동하는 방법에 대해 뭔가를 분명 실종해야하지만 정말 어떤 의미하지 않습니다이 코드가 유효한 동안next()가 포함 된 println을 제거하면 무한 루프가 발생합니까?
Scanner valueScan = new Scanner(line);
valueScan.useDelimiter(",");
while(valueScan.hasNext())
{
count++;
}
:
이이 코드는 무한 루프의 원인을
이 오라클의 문서에서입니다Scanner valueScan = new Scanner(line);
valueScan.useDelimiter(",");
while(valueScan.hasNext())
{
System.out.println("value token: " + valueScan.next());
cellCount++;
}
가 적용하거나 의미 있는지 확실하지 않다 : "입력 스캔을 위해 hasNext()의 이전 호출이 진정한 반환하는 경우에도, 기다리는 동안이 방법을 차단할 수 있습니다."(HTTP ://해야 할 것 cs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html#next%28%29)
이것은 완벽하게 이해할 수 있지만, 왜 이것이 메소드 세부 사항에서 명시 적으로 언급되지 않은지 이해할 수 없습니까? 어쩌면 그것은 단지 나이지만 "이 스캐너에서 다음으로 완전한 토큰을 찾아서 반환합니다"라고 읽으면 접근 자와 같은 방법으로 들리지만 업데이트를 수행하지는 않습니다. – user1086516
@ user1086516 : 아 좋아요. 'hasNext' /'next'는 반복자의 표준 자바 관용어입니다. –