우선, Java의 Scanner 클래스에 있는 next() 및 nextLine() 메서드가 사용자 입력을 얻는 데 사용된다는 것을 알고 있습니다.
(권장 튜토리얼: Java Getting Started Tutorial)
둘의 차이점을 살펴보겠습니다.
next()는 문자 앞/뒤에 공백/Tab 키를 가져오지 않고 문자만 가져옵니다. 공백/Tab 키/Enter 키를 만날 때까지 문자 획득을 시작합니다(문자 앞뒤는 계산하지 않음). nextLine()은 문자 앞뒤의 공백/Tab 키를 획득하고 Enter 키를 만나면 종료됩니다.
예:
import java.util.Scanner; import java.util.Vector; public class Main{ public static void main(String args[]) { Scanner reader=new Scanner(System.in); String s1=reader.nextLine(); String s2=reader.next(); System.out.println(s1); System.out.println(s2); } }
실행 결과:
next()는 Askldfj 문자만 얻고 공백 뒤의 모든 항목은 삭제되는 것을 볼 수 있습니다!
next()와 nextLine()의 순서를 변경하세요
import java.util.Scanner; import java.util.Vector; public class Main{ public static void main(String args[]) { Scanner reader=new Scanner(System.in); String s1=reader.next(); // String ss=reader.nextLine(); String s2=reader.nextLine(); System.out.println(s1); System.out.println(s2); } }
(추천 튜토리얼: java 강좌)
실행 예시:
aaaa bbbb cccc만 입력하면 시스템이 자동으로 두 줄을 출력합니다:
aaaa bbbb cccc
aaaa뒤에 공백이 있어서 next는 필요없어서 다음읽기가 끝나고 남은 bbbbcccc는 nextLine이 집어들어요
해결책은 위 코드에서 주목하는 nextLine()을 추가하는 것
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner reader=new Scanner(System.in); String s1=reader.next(); String s2=reader.nextLine(); System.out.println(s1); System.out.println(s2); } }
실행 결과:
abcdefg abcdefg //剩下两行
abcdefg를 입력하면 캐리지 리턴 프로그램이 종료되고 abcdefg와 두 줄 바꿈이 출력됩니다. 이유는 nextLine이 캐리지 리턴을 흡수하기 때문입니다.
두 개의 nextLine이 서로 연결되지 않도록 주의하세요. next를 사용할 때는 이런 일이 발생하지 않습니다. 왜냐하면 next에 의해 흡수되는 첫 번째 요구 사항은 문자이고 마지막 요구 사항은 공백, Tab 키 및 Enter 키이기 때문입니다.
위 내용은 Java에서 next()와 nextLine()의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!