next()
next()는 Scanner클래스의 메서드인데 값을 입력받는 역할을 수행한다.
nextLine()과 다른 점은 띄어쓰기를 기준으로 나뉜다는 점인데, 문자열의 공백 이전까지의 내용을 입력받는다.만약 이 두가지를 이어서 쓰게 되면 다음과 같은 상황이 일어난다.
Scanner sc = new Scanner(System.in);
Stirng str1 = sc.next();
String str2 = sc.nextLine();
System.out.println(str1);
System.out.println(str2); // 출력되지 않음
위와 같은 상황은 next() 대신 nextInt()를 사용했을 때도 동일한 상황이 일어난다.이유는 next()와 nextInt()는 개행문자 이전 즉 엔터를 누르기 전까지의 값을 받고 다음 행으로 넘어가자마자 nextLine()에 개행문자가 들어가 버리기 때문이다.따라서 이런 상황을 방지하려면 아래와 같은 방법을 사용하면된다.
Scanner sc = new Scanner(System.in);
Stirng str1 = sc.nextLine(); // 둘다 nextLine()으로 받는다.
String str2 = sc.nextLine();
System.out.println(str1);
System.out.println(str2);
===================================
Stirng str1 = sc.next();
sc.nextLine(); // next()사용후 nextLine()을 한번 더 적어준다.
String str2 = sc.nextLine();
System.out.println(str1);
System.out.println(str2);
====================================
int a = Integer.parseInt(nextLine()); // nextLine()사용 후 형변환을 해준다.
String str2 = sc.nextLine();
System.out.println(str1);
System.out.println(str2);
'개발일지' 카테고리의 다른 글
개발일지 11 - BufferedReader 사용법 (0) | 2023.10.31 |
---|---|
개발일지 10 - 두 번째 팀 프로젝트 (1) | 2023.10.30 |
개발일지 08 - Map 사용법 (0) | 2023.10.26 |
개발일지 07 - Github 사용법 (branch) (0) | 2023.10.24 |
개발일지 06 - switch문 (0) | 2023.10.23 |