본문 바로가기
언어 공부하기/JAVA 개념

[Java 자바] Scanner 클래스 완벽 가이드 : 기본 개념부터 예제까지 (자바 Scanner)

by 망댕이 2024. 11. 21.
반응형

Java 프로그램을 작성하다 보면 사용자의 입력을 받아서 처리해야 하는 경우가 존재한다.

이때 가장 많이 사용되는 클래스 중 하나가 바로 java.util.Scanner입니다.

당장 코드 문제같은 것을 풀 때도 Scanner 클래스를 이용하여 문제를 정말 많이 해결한다.

 

이번 글에서는 Scanner 클래스의 기본 개념, 주요 메서드, 실무 활용 사례를 상세히 알아보자

 

▷ Scanner 클래스?

Scanner 클래스는 사용자의 입력을 처리하거나 텍스트 데이터를 읽는 데 사용되는 클래스이다. 파일, 문자열, 키보드 입력 등 다양한 데이터 소스를 읽을 수 있다.

또한 Scanner는 데이터를 토큰(token) 단위로 분리하여 읽기 때문에 간편하게 다룰 수 있다.

 

그리고 아래와 같은 핵심 특징들을 가지고 있다.

 

  • 다양한 데이터 타입 지원: 문자열, 정수, 실수 등 다양한 데이터 타입을 입력받음.
  • 토큰화: 공백 또는 사용자 정의 구분자를 기준으로 데이터를 분리해 읽음.

| Scanner 객체 생성

import java.util.Scanner;

public class ScannerMang {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // 키보드 입력을 위한 Scanner 생성
        System.out.println("이름을 입력하세요: ");
        String name = scanner.nextLine(); // 사용자로부터 한 줄 입력 받기
        System.out.println("내 이름은 " + name + "!");
    }
}

 

 

| 주요 메서드와 데이터 타입 입력

Scanner 클래스는 다양한 데이터 타입을 읽을 수 있도록 여러 메서드를 제공한다.

아래를 보고 알아보자.

1) 문자열 입력

  • next(): 공백 전까지의 단어를 읽음
  • nextLine(): 엔터치기 전까지의 한 줄 전체를 읽음.
Scanner scanner = new Scanner(System.in);

String next = scanner.next();
System.out.println(next);

//"나는 오늘 밥을 먹고
//블로그를 쓰러갔다." 라는 입력을 했다는 가정.

 

출력 결과

나는
Scanner scanner = new Scanner(System.in);

String nextLine = scanner.nextLine();
System.out.println(nextLine);

//"나는 오늘 밥을 먹고
//블로그를 쓰러갔다." 라는 입력을 했다는 가정.
출력 결과

나는 오늘 밥을 먹고

 

2) 정수 및 실수 입력

  • nextInt(): 정수 입력
  • nextDouble(): 실수 입력
  • nextLong(): Long 타입 정수 입력
Scanner scanner = new Scanner(System.in);

int num = scanner.nextInt();
System.out.println(num);

double decimal = scanner.nextDouble();
System.out.println(decimal);

//134546
//53.516 라고 입력을 했다는 가정
출력 결과

134546
53.516

 

3) Boolean 입력

  • nextBoolean(): true 또는 false 값을 입력받음.
Scanner scanner = new Scanner(System.in);

boolean boolValue = scanner.nextBoolean();
System.out.println(boolValue);

//true 라고 입력을 했다는 가정
출력 결과

true

 

 

| Scanner 클래스 고급 활용법

Scanner는 데이터를 읽기 전에 해당 데이터가 특정 타입인지 확인할 수 있는 메서드를 제공한다.

  • hasNextInt(): 다음 입력이 정수인지 확인
  • hasNextDouble(): 다음 입력이 실수인지 확인
  • hasNextBoolean(): 다음 입력이 Boolean인지 확인
import java.util.Scanner;

class Main{
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        
        while(s.hasNextInt()){
            int a = s.nextInt();
            int b = s.nextInt();
            System.out.println(a+b);
        }
    }
}

백준 A + B - 4 문제 예시 참조

 

이번 글로 Scanner 클래스의 기본 사용법부터 고급 활용법까지 충분히 이해하셨기를 바랍니다. 

궁금한 점이나 추가적인 활용 예제가 있다면 댓글로 알려주세요! 😊

반응형