System.out
을 통해서 출력을 했듯이, System.in
을 통해서 사용자의 입력을 받을 수 있다. 그런데 자바가 제공하는 System.in
을 통해서 사용자 입력을 받으려면 여러 과정을 거쳐야해서 복잡하고 여렵다.
자바는 이런 문제를 해결하기 위해 Scanner
라는 클래스를 제공한다. 이 클래스를 사용하면 사용자 입력을 매우 편리하게 받을 수 있다.
package scanner;
import java.util.Scanner;
public class Scanner1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("문자열을 입력하세요 : ");
String str = scanner.nextLine(); // 입력을 String으로 가져온다.
System.out.println("입력한 문자열 : " + str);
System.out.print("정수를 입력하세요 : ");
int intValue = scanner.nextInt(); // 입력을 int로 가져온다.
System.out.println("입력한 정수 : " + intValue);
System.out.print("실수를 입력하세요 : ");
double doubleValue = scanner.nextDouble(); // 입력을 double로 가져온다.
System.out.println("입력한 실수 : " + doubleValue);
}
}
Scanner scanner = new Scanner(System.in);
Scanner
의 기능을 사용하기 위해 new
를 사용해서 Scanner
를 만든다.Scanner
는 System.in
을 사용해서 사용자의 입력을 편리하게 받도록 도와준다.Scanner scanner
코드는 scanner
변수를 선언하는 것이다. 이제부터 scanner
변수를 통해서 Scanner
를 사용할 수 있다.scanner.nextLine();
\n
)을 입력할 때 까지 문자를 가져온다.scanner.nextInt();
int
형으로 가져온다. 정수 입력에 사용한다.scanner.nextDouble();
double
형으로 가져온다. 실수 입력에 사용한다.타입이 다르면 오류가 발생한다.
다음 코드를 보면 println()
이 아니라 print()
를 사용한다.
System.out.print(”문자열을 입력하세요 : ”);
그 이유는 다음과 같다.
System.out.print("hello");
System.out.print("world");
// 결과 : helloworld
System.out.println("hello");
System.out.println("world");
/*
결과 :
hello
world
*/
우리가 엔터 키를 치면 (\n
)이라는 문자를 남기는 것이다.
이 문자는 영어로 new line character
, 한글로 줄바꿈 문자 또는 개행 문자라고 하는데, 이름 그대로 새로운 라인으로 넘기라는 뜻이다. 콘솔에서는 이 문자를 보고 다음 라인으로 넘긴다.
println()
은 print()
의 마지막에 \n
을 추가한다. 따라서 다음 코드는 println()
과 같다.
System.out.print("hello\n");
System.out.print("world\n");
/*
결과 :
hello
world
*/