JAVA/포스팅

자바 java.util.Scanner클래스

짜집퍼박사(짜박) 2023. 11. 15. 16:44

java.util.Scanner 클래스는 Java에서 표준 입력에서 사용자로부터 다양한 형식의 입력을 읽어오기 위한 클래스입니다. 주로 콘솔에서 키보드로부터 데이터를 읽어오는 데 사용됩니다.

 

Scanner 클래스의 주요 메서드

 

1. Scanner(InputStream source) 생성자

System.in 등의 입력 스트림을 사용하여 Scanner 객체를 생성합니다.

import java.util.Scanner;
import java.io.InputStream;

public class ScannerExample {
    public static void main(String[] args) {
        // 표준 입력(System.in)을 사용하여 Scanner 객체 생성
        Scanner scanner = new Scanner(System.in);
        // 이후 Scanner를 사용하여 입력을 읽어올 수 있음
    }
}

 

2. next() 메서드

공백이나 개행 문자를 기준으로 다음 토큰을 읽어옵니다.

Scanner scanner = new Scanner(System.in);
System.out.print("Enter a word: ");
String word = scanner.next();
System.out.println("You entered: " + word);

 

3. nextInt(), nextDouble(), nextBoolean() 등의 메서드

다음 정수, 실수, 불리언 값을 읽어옵니다.

Scanner scanner = new Scanner(System.in);
System.out.print("Enter an integer: ");
int num = scanner.nextInt();
System.out.println("You entered: " + num);

 

4. nextLine() 메서드

현재 위치에서 다음 라인까지의 문자열을 읽어옵니다.

Scanner scanner = new Scanner(System.in);
System.out.print("Enter a sentence: ");
String sentence = scanner.nextLine();
System.out.println("You entered: " + sentence);

 

5. hasNext() 메서드

입력에서 읽어올 다음 토큰이 있는지 여부를 확인합니다.

Scanner scanner = new Scanner(System.in);
System.out.print("Enter something: ");
if (scanner.hasNext()) {
    String input = scanner.next();
    System.out.println("You entered: " + input);
}

 

6. useDelimiter(String pattern) 메서드

입력을 특정 패턴으로 구분할 수 있습니다.

Scanner scanner = new Scanner("apple,orange,banana");
scanner.useDelimiter(",");

while (scanner.hasNext()) {
    String fruit = scanner.next();
    System.out.println(fruit);
}

 

7. close() 메서드

Scanner 객체가 사용한 리소스를 해제합니다.

Scanner scanner = new Scanner(System.in);
// 사용 완료 후 close() 호출
scanner.close();

 

 

주의사항

 

- Scanner를 사용한 후에는 close() 메서드를 호출하여 리소스를 명시적으로 해제해야 합니다.
- Scanner는 공백 문자나 개행 문자 등을 기준으로 토큰을 읽기 때문에, 다른 입력 메서드(BufferedReader 등)와 함께 사용할 때 주의해야 합니다.
- 사용자 입력을 받을 때 항상 예외 처리를 고려해야 합니다. (InputMismatchException 등)

Scanner 클래스는 간단하게 입력을 다루기 위한 편리한 클래스이지만, 더 복잡하거나 대용량의 데이터를 다룰 때는 다른 입력 방법을 고려해야 할 수 있습니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 java.math.BigInteger클래스  (0) 2023.11.16
자바 java.util.StringTokenizer클래스  (0) 2023.11.16
자바 java.util.regex패키지  (0) 2023.11.15
자바 java.util.Random클래스  (0) 2023.11.15
자바 java.util.Objects클래스  (0) 2023.11.15