Backend/자바
[Java] Scanner클래스와 버퍼의 개행문자
Gaejirang-e
2023. 3. 12. 14:11
적은 양의 데이터를 가볍게 받아서 처리할 때 (java.util.Scanner)
nextInt(), next()
nextLine()
❗ nextInt(), next() 다음에 nextLine()을 하면?
버퍼에 남아있는 개행문자를 nextLine()이 바로 읽어버린다.
버퍼에 남아있는 개행문자를 nextLine()이 바로 읽어버린다.
import java.util.Scanner;
public class ScannerAndNextLineTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("이름: ");
sc.next();
System.out.print("나이: ");
sc.nextInt();
System.out.print("주소: ");
sc.nextLine(); // \n이 입력되어 바로 넘어간다
System.out.println("end..");
}
}
📖 해결방법
: sc.nextLine();로 개행문자를 비운다.
: sc.nextLine();로 개행문자를 비운다.
import java.util.Scanner;
public class ScannerAndNextLineTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("이름: ");
sc.next();
System.out.print("나이: ");
sc.nextInt();
//개행문자 비우기
sc.nextLine();
System.out.print("주소: ");
sc.nextLine(); // 버퍼에 개행문자를 비웠으므로 입력할 수 있다
System.out.println("end..");
}
}