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 |