어제 오늘 내일

[Java Scanner] 주요 메소드 정리와 활용 예제 본문

IT/Java

[Java Scanner] 주요 메소드 정리와 활용 예제

hi.anna 2025. 10. 6. 00:18

Java에서 사용자 입력이나 파일 입력을 처리할 때 가장 많이 사용하는 클래스 중 하나가 Scanner입니다. 이 클래스는 공백, 줄바꿈, 또는 지정된 구분자 기준으로 데이터를 손쉽게 읽을 수 있게 해줍니다. 이번 글에서는 Scanner 클래스의 주요 메소드와 활용법을 예제와 함께 정리해보겠습니다.

 

1. next() - 공백 전까지 문자열 입력

import java.util.Scanner;

public class ScannerNextExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("이름 입력: ");
        String name = sc.next(); // 공백 전까지만 읽음
        System.out.println("입력된 이름: " + name);
    }
}

사용자가 "Hong Gil Dong"을 입력하면 "Hong"까지만 읽습니다. 공백 이후는 다음 입력으로 남습니다.

 

 

2. nextLine() - 한 줄 전체 입력

import java.util.Scanner;

public class ScannerNextLineExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("주소 입력: ");
        String address = sc.nextLine(); // 한 줄 전체 읽음
        System.out.println("입력된 주소: " + address);
    }
}

공백을 포함한 한 줄 전체를 읽을 수 있습니다.

 

 

3. nextInt(), nextDouble() - 숫자 입력

import java.util.Scanner;

public class ScannerNumberExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("나이 입력: ");
        int age = sc.nextInt();
        System.out.print("키 입력: ");
        double height = sc.nextDouble();

        System.out.println("나이: " + age + ", 키: " + height);
    }
}

입력값을 바로 정수나 실수로 변환해줍니다. 다만 잘못된 형식(예: "abc") 입력 시 예외(InputMismatchException)가 발생합니다.

 

 

4. useDelimiter(String regex) - 구분자 변경

import java.util.Scanner;

public class ScannerDelimiterExample {
    public static void main(String[] args) {
        String input = "apple|banana|orange";
        Scanner sc = new Scanner(input);
        sc.useDelimiter("\\|"); // 파이프(|) 기준으로 분리

        while (sc.hasNext()) {
            System.out.println(sc.next());
        }
    }
}

출력 결과:

apple
banana
orange

기본 구분자는 공백이지만, useDelimiter()를 사용하면 원하는 정규표현식을 기준으로 데이터 분리 가능.

 

 

5. hasNext(), hasNextInt() - 입력 여부 확인

import java.util.Scanner;

public class ScannerHasNextExample {
    public static void main(String[] args) {
        String input = "100 200 end";
        Scanner sc = new Scanner(input);

        while (sc.hasNextInt()) {
            System.out.println("숫자: " + sc.nextInt());
        }
        if (sc.hasNext()) {
            System.out.println("남은 데이터: " + sc.next());
        }
    }
}

출력 결과:

숫자: 100
숫자: 200
남은 데이터: end

입력 데이터가 있는지, 정수인지 여부를 미리 확인할 수 있어 안전한 입력 처리가 가능합니다.

 

 

6. 활용 사례

  • 콘솔 기반 사용자 입력 처리 (예: 간단한 메뉴 시스템)
  • 파일 데이터 파싱 (CSV, 로그 파일 등)
  • 데이터 검증 및 변환 (정수, 실수, 문자열 혼합 입력 처리)

 

정리

Scanner 클래스는 간단한 사용자 입력부터 파일 데이터 처리까지 폭넓게 활용됩니다. next(), nextLine(), nextInt()와 같은 메소드들을 상황에 맞게 조합하면 다양한 입력을 효과적으로 처리할 수 있습니다.

 

 

반응형
Comments