System.out
을 통해서 출력한 것처럼 System.in
을 통해 사용자의 입력을 받을 수 있다. 하지만 **System.in**
을 통해 사용자 입력을 받으려면 여러 과정을 거쳐야해서 복잡하고 어렵다.
이 문제를 해결하기 위해 Scanner
라는 클래스가 만들어졌음 (이 클래스를 사용하면 사용자 입력을 편리하게 받을 수 있음)
// Java 라이브러리에 있는 스캐너를 사용한다는 선언
import java.util.Scanner;
public class Scanner1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 바로 옆에 입력할 수 있도록 println이 아닌 print로 입력
System.out.print("문자열을 입력하세요 : ");
// 입력을 String으로 가져온다
String str = scanner.nextLine();
System.out.println("입력한 문자열 : " + str);
}
}
위의 코드를 실행하면 사용자가 직접 입력할 수 있고, 입력된 내용을 바로 출력해준다.
// Java 라이브러리에 있는 스캐너를 사용한다는 선언
import java.util.Scanner;
public class Scanner1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("문자열을 입력하세요 : ");
// 입력을 String으로 가져온다
String str = scanner.nextLine();
System.out.println("입력한 문자열 : " + str);
System.out.print("정수를 입력하세요 : ");
int intValue = scanner.nextInt();
System.out.println("입력한 정수 : " + intValue);
}
}
한 번 더 반복하려고 하니까 뭔가 좋은 생각이 들어서 별 거 아니지만 조금 바꿔보려고 한다. (끝까지 들은 후에)
// Java 라이브러리에 있는 스캐너를 사용한다는 선언
import java.util.Scanner;
public class Scanner1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("문자열을 입력하세요 : ");
// 입력을 String으로 가져온다
String str = scanner.nextLine();
System.out.println("입력한 문자열 : " + str);
System.out.print("정수를 입력하세요 : ");
int intValue = scanner.nextInt();
System.out.println("입력한 정수 : " + intValue);
System.out.print("실수를 입력하세요 : ");
double doubleValue = scanner.nextDouble();
System.out.println("입력한 실수 : " + doubleValue);
}
}
scanner.nextLine()
: 엔터(\n)을 입력할 때까지 문자를 가져옴
scanner.nextInt()
: 입력을 int형으로 가져오며 정수 입력에 사용됨
scanner.nextDouble()
: 입력을 double형으로 가져오며 실수 입력에 사용됨