너와 나의 개발 고리

[JAVA] chap02 변수와 타입_키보드 입력 데이터를 변수에 저장(Scanner 사용법 및 예제 정리) 본문

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("종료");
  }
}

 

위의 코드를 실행하면 아래의 결과물을 확인 할 수 있다.