JAVA/이것이 자바다
[JAVA] chap02 변수와 타입_키보드 입력 데이터를 변수에 저장(Scanner 사용법 및 예제 정리)
Oli-Viaaaa
2023. 8. 8. 09:49
키보드로부터 입력된 데이터를 읽고 변수에 저장하는 가장 쉬운 방법은 Scanner를 사용하는 것이다
Scanner 클래스는 자바에서 사용자의 입력을 읽기 위해 제공되는 유용한 클래스다.
Scanner 클래스의 주요 메서드는 아래와 같다.
| 메소드 | 설명 |
| 1. 문자열 읽기 | |
| next( ) | 공백 문자 이전까지의 문자열을 읽는다. |
| nextLine( ) | 한 줄을 문자열을 읽는다. |
| 2. 숫자 읽기 | |
| nextInt( ) | 정수를 읽는다. |
| nextLong( ) |
long 타입의 정수를 읽는다. |
| nextFloat( ) |
float 타입의 실수를 읽는다. |
| nextDouble( ) |
double 타입의 실수를 읽는다. |
| nextShort( ) |
short 타입의 정수를 읽는다. |
| nextByte( ) | byte 타입의 정수를 읽는다. |
| 3. 논리값 읽기 | |
| nextBoolean( ) | 논리값을 읽는다. |
| 4. 문자 읽기 | |
| next( ).charAt(0) | 문자를 읽는다. |
| 5. 형식화된 입력 | |
| useDelimiter(String pattern) | 입력을 구분하는 구분자를 설정한다. |
| next(Pattern pattern) | 지정된 패턴과 일치하는 다음 토큰을 읽는다. |
| 6. 입력확인 | |
| hasNext( ) | 입력 스트림에 읽을 수 있는 토큰이 있는지 여부를 확인한다. |
| hasNextLine( ) | 입력 스트림에 읽을 수 있는 한 줄의 문자열이 있는지 여부를 확인한다. |
| 7. 입력 스트림 닫기 | |
| close( ) | 입력 스트림을 닫습니다. |
import java.util.Scanner;
Scanner는 java.util에 있어 import를 해야 사용할 수 있다.
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // Scanner 객체 생성
String inputData = scanner.nextLine(); // 입력 받은 문자열을 inutData에 저장
System.out.println("입력된 문자열 : "+inputData); // 입력 받은 문자열 출력
}

아래와 같이 scanner.nextLine()을 실행하면 키보드로 입력된 내용을 문자열로 읽고 좌측 String 변수에 저장할 수 있다.

scanner.nextLine( ) 은 Enter 키가 입력되기 전까지 블로킹(대기) 상태가 되며,
Enter 키가 입력되면 지금까지 입력된 모든 내용을 문자열로 읽는다.
아래의 예시를 통해 입력된 값을 확인 해 볼 수 있다.
중괄호 안을 무한반복하는 while(true)을 활용하여 작성할 수도 있다.
import java.util.Scanner;
public class Day2{
public static void main(String[] args) throws Exception{
Scanner scanner = new Scanner(System.in); // 객체 선언
while(true){
System.out.println("입력 문자열 : ");
String data = scanner.nextLine();
if(data.equals("q")){ // 입력값이 "q"일때 종료 한다.
break;
}
System.out.println("출력 문자열 : " +data);
System.out.println();
}
System.out.println("종료");
}
}
위의 코드를 실행하면 아래의 결과물을 확인 할 수 있다.