hayu's 개발 일지

[TIL]240408 Scanner 클래스 본문

기술/java

[TIL]240408 Scanner 클래스

hayu00 2024. 4. 8. 21:24

Scanner 클래스란?

  • Scanner는 사용자로부터 입력을 받을 수 있도록 도와주는 것이다.
  • 화면이나 파일, 문자열 등의 입력으로부터 문자를 읽어주는 클래스이다.

Scanner 특징

  • java.util 패키지 내에 존재하여 import 을 통해 호출해야 한다.
  • 정수(int)와 실수(double) 등의 기본적인 데이터타입 입력을 받기 위한 클래스다.
  • 공백(띄어쓰기) 또는 개행(줄바꿈)을 기준으로 읽는다.

Scanner 사용순서

  1. import문 추가하기
  2. Scanner 객체 생성
  3. Scanner 객체 사용
  4. 닫아주기.
import java.util.Scanner; // java.util의 Scanner 클래스 import 
// import java.util.*; // java.util에 있는 클래스 모두 import

public class Scanner_s1 {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in); // Scanner 객체 생성

        String str = scanner.next(); // 입력받은 문자열을 str에 저장

        String name = scanner.next(); // 입력받은 문자열을 name에 저장
        int age = scanner.nextInt(); // 입력받은 정수를 age에 저장

        scanner.close(); // 닫아주기.

    }
}

 

Scanner 메서드

토큰(Token) : 공백 문자(Spacebar), 탭(Tab), 개행(Enter) 등으로 구분되는 요소이다.

  • next() : 토큰을 String 타입으로 반환한다.
  • nextLine() : 한 줄("\n (Enter)"를 치기 전까지)을 읽고, "\n (Enter)"값이 제외된 부분만을 출력한다.(개행 기준)
  • nextShort() : 토큰을 short 타입으로 반환한다.
  • nextInt() : 토큰을 int 타입으로 반환한다.
  • nextLong() : 토큰을 long 타입으로 반환한다.
  • nextFloat() : 토큰을 float 타입으로 반환한다.
  • nextDouble() : 토큰을 double 타입으로 반환한다.
  • close() : scanner의 사용을 종료한다.

next()와 nextLine()의 차이

  • Scanner 클래스에 String을 입력받는 메서드 next()와 nextLine()이 있다.
  • 둘 다 문자열로 반환시켜준다는 공통점이 있다.
  • 개행문자를 무시하냐 안하냐의 차이점이 있다.

next()

  • 공백을 기준으로 한 단어 또는 한 문자씩 입력받는다.
  • 공백(space)전까지 입력받은 문자열을 반환한다.
  • 개행 문자를 가져올 수 없다.
Scanner scanner = new Scanner(System.in); // Scanner 객체 생성
        String str = scanner.next(); // 입력받은 문자열을 str에 저장
        // 입력 : Hello World
        // 출력 : Hello

nextLine()

  • 문자 또는 엔터를 티기 전까지의 문장 전체를 입력받는다.
  • Enter를 치기 전까지 쓴 문자열 모두를 반환한다.
  • 버퍼에 입력된 문자열을 개행 문자까지 다 가져온다.
Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        System.out.println(s);
        // 입력 : Hello World
        // 출력 : Hello World

 

참고 자료

- https://hstory0208.tistory.com/entry/Java%EC%9E%90%EB%B0%94-Scanner-%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%9E%85%EB%A0%A5%EB%B0%9B%EA%B8%B0

- https://pongic.tistory.com/5

- https://devlog-wjdrbs96.tistory.com/80

- https://velog.io/@suyyeon/JAVA-Scanner%ED%81%B4%EB%9E%98%EC%8A%A4-next-nextLine-%EC%B0%A8%EC%9D%B4

'기술 > java' 카테고리의 다른 글

[TIL]240416 wrapper 클래스  (0) 2024.04.16
[TIL]240410 JAVA Collection  (0) 2024.04.10
[TIL]240406 Set  (0) 2024.04.06
[TIL]240403 Map  (0) 2024.04.03
[TIL]240325 ArrayList  (0) 2024.03.25