All About IT
[Java 기초] Scanner 클래스의 next(), nextInt(), nextLine() 메소드 사용법
안녕하세요~
이번 시간에는 Scanner 클래스에 존재하는 메소드들에 대해 알아보려고 하는데요.
활용코드 한번 보시죠!
Scanner 클래스를 사용하여 입력받을 수 있는 코드
package study;
import java.util.Scanner;
public class Day15 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("이름 > ");
String name = sc.next();
System.out.print("나이 > ");
int age = sc.nextInt();
System.out.print("번호 > ");
String phone = sc.next();
System.out.print("주소 > ");
String addr = sc.nextLine();
System.out.println("==================================");
System.out.println("이름\t나이\t번호\t\t주소");
System.out.printf("%s\t%d\t%s\t%s",name,age,phone,addr);
}
}
Scanner 클래스에 존재하는 next(), nextInt(), nextLine() 메소드를 활용해 이름,나이,번호,주소를 입력받고자 합니다.
코드에는 오류 문구가 없는데 실행했을 때 주소 입력을 하지도 않았는데 넘어가고 종료되네요.
어떤 순서로 실행되는지 한번 볼까요?
오늘의 핵심 키워드
- next() 메소드는 문자를 입력할 때 사용한다. 단, 공백은 입력할 수 없어 띄어쓰기는 불가능하다.
- nextInt() 메소드는 숫자를 입력할 때 사용한다. 마찬가지로 띄어쓰기는 불가능하다.
- nextLine() 메소드는 문자+공백을 입력할 때 사용한다. 띄어쓰기를 입력할 수 있어 유용하지만 다른 메소드들과 같이 사용할 때 먼저 상황에서 공백이 남아있다면 입력을 하지 않아도 자동으로 넘어가게 된다.
1. 주소를 입력받는 nextLine()
2. 그 전에 있는 번호 입력을 위한 next() 에서 번호를 입력하고 엔터를 누릅니다.
3. 이 엔터도 띄어쓰기 한칸 되어있는 공백으로 인식해서 넘어가게 됩니다.
📌 그래서 이를 해결하기 위해 번호 입력하는 next() 뒤에 nextLine()을 한번 입력해서 공백을 제거해줍니다.
next() 뒤에 nextLine()을 작성하여 공백을 제거했더니 정상적으로 주소가 입력되어 출력되었습니다.
최종 완성 코드
package study;
import java.util.Scanner;
public class Day15 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("이름 > ");
String name = sc.next();
System.out.print("나이 > ");
int age = sc.nextInt();
System.out.print("번호 > ");
String phone = sc.next();sc.nextLine();
System.out.print("주소 > ");
String addr = sc.nextLine();
System.out.println("==================================");
System.out.println("이름\t나이\t번호\t\t주소");
System.out.printf("%s\t%d\t%s\t%s",name,age,phone,addr);
}
}
꼭 봐야되는 마무리 꿀팁!
- 입력 중에 띄어쓰기와 함께 저장할 때는 nextLine() 사용하기!
- nextLine() 메소드를 next(), nextInt()와 섞어서 사용할 때는 앞에 nextLine()으로 공백 제거하기!
▲ 영상으로 한번 더 복습하세요 :)