Java의 스캐너 클래스는 java.util 패키지에 있습니다. Java는 키보드에서 입력을 읽는 다양한 방법을 제공하며 java.util.Scanner 클래스가 그 중 하나입니다.
Java Scanner 클래스는 기본적으로 공백인 구분 기호를 사용하여 입력을 토큰으로 나눕니다. 다양한 기본 값을 읽고 구문 분석하는 다양한 방법을 제공합니다.
t 플립플롭
Java Scanner 클래스는 정규식을 사용하여 문자열 및 기본 유형에 대한 텍스트를 구문 분석하는 데 널리 사용됩니다. Java에서 입력을 얻는 가장 간단한 방법입니다. Java의 Scanner를 사용하면 int, long, double, byte, float, short 등과 같은 기본 유형으로 사용자로부터 입력을 얻을 수 있습니다.
Java Scanner 클래스는 Object 클래스를 확장하고 Iterator 및 Closeable 인터페이스를 구현합니다.
Java Scanner 클래스는 nextInt(), nextByte(), nextShort(), next(), nextLine(), nextDouble(), nextFloat(), nextBoolean() 등과 같은 값 유형을 반환하는 nextXXX() 메서드를 제공합니다. 스캐너에서 단일 문자를 가져오려면 단일 문자를 반환하는 next().charAt(0) 메서드를 호출할 수 있습니다.
Java 스캐너 클래스 선언
public final class Scanner extends Object implements Iterator
Java 스캐너를 얻는 방법
사용자로부터 입력을 읽는 Java Scanner의 인스턴스를 얻으려면 Scanner 클래스의 생성자에 입력 스트림(System.in)을 전달해야 합니다. 예를 들어:
Scanner in = new Scanner(System.in);
문자열을 구문 분석하는 Java Scanner의 인스턴스를 얻으려면 Scanner 클래스의 생성자에 문자열을 전달해야 합니다. 예를 들어:
Scanner in = new Scanner('Hello Javatpoint');
Java 스캐너 클래스 생성자
SN | 건설자 | 설명 |
---|---|---|
1) | 스캐너(파일 소스) | 지정된 파일에서 스캔된 값을 생성하는 새로운 Scanner를 구성합니다. |
2) | 스캐너(파일 소스, 문자열 charsetName) | 지정된 파일에서 스캔된 값을 생성하는 새로운 Scanner를 구성합니다. |
삼) | 스캐너(InputStream 소스) | 지정된 입력 스트림에서 스캔된 값을 생성하는 새로운 Scanner를 구성합니다. |
4) | 스캐너(InputStream 소스, 문자열 charsetName) | 지정된 입력 스트림에서 스캔된 값을 생성하는 새로운 Scanner를 구성합니다. |
5) | 스캐너(읽을 수 있는 소스) | 지정된 소스에서 스캔된 값을 생성하는 새로운 Scanner를 구성합니다. |
6) | 스캐너(문자열 소스) | 지정된 문자열에서 스캔된 값을 생성하는 새로운 Scanner를 구성합니다. |
7) | 스캐너(ReadableByteChannel 소스) | 지정된 채널에서 스캔된 값을 생성하는 새 스캐너를 구성합니다. |
8) | Scanner(ReadableByteChannel 소스, 문자열 charsetName) | 지정된 채널에서 스캔된 값을 생성하는 새 스캐너를 구성합니다. |
9) | 스캐너(경로 소스) | 지정된 파일에서 스캔된 값을 생성하는 새로운 Scanner를 구성합니다. |
10) | Scanner(경로 소스, 문자열 charsetName) | 지정된 파일에서 스캔된 값을 생성하는 새로운 Scanner를 구성합니다. |
Java 스캐너 클래스 메소드
다음은 Scanner 메소드 목록입니다.
SN | 수정자 및 유형 | 방법 | 설명 |
---|---|---|---|
1) | 무효의 | 닫다() | 이 스캐너를 닫는 데 사용됩니다. |
2) | 무늬 | 구분자() | Scanner 클래스가 구분 기호를 일치시키기 위해 현재 사용하고 있는 패턴을 가져오는 데 사용됩니다. |
삼) | 개울 | 모두찾기() | 제공된 패턴 문자열과 일치하는 일치 결과 스트림을 찾는 데 사용됩니다. |
4) | 끈 | 찾기인라인() | 구분 기호를 무시하고 지정된 문자열에서 구성된 패턴의 다음 발생을 찾는 데 사용됩니다. |
5) | 끈 | findWithinHorizon() | 구분 기호를 무시하고 지정된 문자열에서 구성된 패턴의 다음 발생을 찾는 데 사용됩니다. |
6) | 부울 | 해즈다음() | 이 스캐너의 입력에 다른 토큰이 있으면 true를 반환합니다. |
7) | 부울 | hasNextBigDecimal() | 이 스캐너 입력의 다음 토큰이 nextBigDecimal() 메서드를 사용하여 BigDecimal로 해석될 수 있는지 여부를 확인하는 데 사용됩니다. |
8) | 부울 | hasNextBigInteger() | 이 스캐너 입력의 다음 토큰이 nextBigDecimal() 메서드를 사용하여 BigDecimal로 해석될 수 있는지 여부를 확인하는 데 사용됩니다. |
9) | 부울 | hasNextBoolean() | 이 스캐너 입력의 다음 토큰이 nextBoolean() 메서드를 사용하여 부울로 해석될 수 있는지 여부를 확인하는 데 사용됩니다. |
10) | 부울 | 해스다음바이트() | 이 스캐너 입력의 다음 토큰이 nextBigDecimal() 메서드를 사용하여 바이트로 해석될 수 있는지 여부를 확인하는 데 사용됩니다. |
열하나) | 부울 | hasNextDouble() | 이 스캐너 입력의 다음 토큰이 nextByte() 메서드를 사용하여 BigDecimal로 해석될 수 있는지 여부를 확인하는 데 사용됩니다. |
12) | 부울 | hasNextFloat() | 이 스캐너 입력의 다음 토큰이 nextFloat() 메서드를 사용하여 Float로 해석될 수 있는지 여부를 확인하는 데 사용됩니다. |
13) | 부울 | hasNextInt() | 이 스캐너 입력의 다음 토큰이 nextInt() 메서드를 사용하여 int로 해석될 수 있는지 여부를 확인하는 데 사용됩니다. |
14) | 부울 | 해스다음라인() | 이 스캐너의 입력에 다른 줄이 있는지 확인하는 데 사용됩니다. |
열 다섯) | 부울 | hasNextLong() | 이 스캐너의 입력에서 다음 토큰이 nextLong() 메소드를 사용하여 Long으로 해석될 수 있는지 여부를 확인하는 데 사용됩니다. |
16) | 부울 | hasNextShort() | 이 스캐너 입력의 다음 토큰이 nextShort() 메서드를 사용하여 Short로 해석될 수 있는지 여부를 확인하는 데 사용됩니다. |
17) | IO예외 | io예외() | 이 스캐너의 읽기 가능 항목에서 마지막으로 발생한 IOException을 가져오는 데 사용됩니다. |
18) | 현지의 | 현지의() | Scanner 클래스의 Locale을 가져오는 데 사용됩니다. |
19) | 일치 결과 | 성냥() | 이 스캐너가 수행한 마지막 스캔 작업의 일치 결과를 가져오는 데 사용됩니다. |
이십) | 끈 | 다음() | 사용 중인 스캐너에서 다음 완전한 토큰을 가져오는 데 사용됩니다. |
이십 일) | BigDecimal | nextBigDecimal() | 입력의 다음 토큰을 BigDecimal로 스캔합니다. |
22) | 빅정수 | nextBigInteger() | 입력의 다음 토큰을 BigInteger로 스캔합니다. |
23) | 부울 | nextBoolean() | 입력의 다음 토큰을 부울 값으로 스캔하고 해당 값을 반환합니다. |
24) | 바이트 | 다음바이트() | 입력의 다음 토큰을 바이트로 스캔합니다. |
25) | 더블 | 다음더블() | 입력의 다음 토큰을 double로 스캔합니다. |
26) | 뜨다 | 다음플로트() | 입력의 다음 토큰을 부동소수점으로 스캔합니다. |
27) | 정수 | nextInt() | 입력의 다음 토큰을 Int로 스캔합니다. |
28) | 끈 | 다음라인() | Scanner 객체에서 건너뛴 입력 문자열을 가져오는 데 사용됩니다. |
29) | 긴 | 다음긴() | 입력의 다음 토큰을 길게 스캔합니다. |
30) | 짧은 | 다음짧은() | 입력의 다음 토큰을 짧게 스캔합니다. |
31) | 정수 | 어근() | Scanner 사용의 기본 기수를 가져오는 데 사용됩니다. |
32) | 무효의 | 제거하다() | 이 Iterator 구현에서 제거 작업이 지원되지 않을 때 사용됩니다. |
33) | 스캐너 | 초기화() | 사용 중인 스캐너를 재설정하는 데 사용됩니다. |
3. 4) | 스캐너 | 건너뛰다() | 구분 기호를 무시하고 지정된 패턴과 일치하는 입력을 건너뜁니다. |
35) | 개울 | 토큰() | 사용 중인 Scanner 개체에서 구분 기호로 구분된 토큰 스트림을 가져오는 데 사용됩니다. |
36) | 끈 | toString() | Scanner를 사용하여 문자열 표현을 얻는 데 사용됩니다. |
37) | 스캐너 | 사용구분자() | 사용중인 Scanner의 구분 패턴을 지정된 패턴으로 설정하는데 사용됩니다. |
38) | 스캐너 | useLocale() | 이 스캐너의 로케일 개체를 지정된 로케일로 설정하는 데 사용됩니다. |
39) | 스캐너 | useRadix() | 사용중인 Scanner의 기본 radix를 지정된 radix로 설정하는데 사용됩니다. |
실시예 1
사용자로부터 단일 입력을 받는 Java Scanner의 간단한 예를 살펴보겠습니다. 여기서는 in.nextLine() 메소드를 통해 문자열을 요청하고 있습니다.
import java.util.*; public class ScannerExample { public static void main(String args[]){ Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.nextLine(); System.out.println('Name is: ' + name); in.close(); } }
산출:
자바의 일반성
Enter your name: sonoo jaiswal Name is: sonoo jaiswal
실시예 2
import java.util.*; public class ScannerClassExample1 { public static void main(String args[]){ String s = 'Hello, This is JavaTpoint.'; //Create scanner Object and pass string in it Scanner scan = new Scanner(s); //Check if the scanner has a token System.out.println('Boolean Result: ' + scan.hasNext()); //Print the string System.out.println('String: ' +scan.nextLine()); scan.close(); System.out.println('--------Enter Your Details-------- '); Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.next(); System.out.println('Name: ' + name); System.out.print('Enter your age: '); int i = in.nextInt(); System.out.println('Age: ' + i); System.out.print('Enter your salary: '); double d = in.nextDouble(); System.out.println('Salary: ' + d); in.close(); } }
산출:
Boolean Result: true String: Hello, This is JavaTpoint. -------Enter Your Details--------- Enter your name: Abhishek Name: Abhishek Enter your age: 23 Age: 23 Enter your salary: 25000 Salary: 25000.0
실시예 3
import java.util.*; public class ScannerClassExample2 { public static void main(String args[]){ String str = 'Hello/This is JavaTpoint/My name is Abhishek.'; //Create scanner with the specified String Object Scanner scanner = new Scanner(str); System.out.println('Boolean Result: '+scanner.hasNextBoolean()); //Change the delimiter of this scanner scanner.useDelimiter('/'); //Printing the tokenized Strings System.out.println('---Tokenizes String---'); while(scanner.hasNext()){ System.out.println(scanner.next()); } //Display the new delimiter System.out.println('Delimiter used: ' +scanner.delimiter()); scanner.close(); } }
산출:
Boolean Result: false ---Tokenizes String--- Hello This is JavaTpoint My name is Abhishek. Delimiter used: /