English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 예제를 통해 Java Scanner 및 메서드를 배웁니다.
java.io 패키지의 PrintWriter 클래스는 일반적으로 읽을 수 있는 형식(텍스트)으로 출력 데이터를 쓸 수 있습니다.
java.util 패키지의 Scanner 클래스는 다양한 소스(예: 입력 스트림, 사용자, 파일 등)에서 입력 데이터를 읽는 데 사용됩니다. 예제를 들어 보겠습니다.
import java.util.Scanner; class Main { public static void main(String[] args) { //Scanner 객체를 생성합니다 Scanner input = new Scanner(System.in); System.out.print("이름 입력: "); // 키보드에서 입력을 받습니다 String name = input.nextLine(); // 이름을 출력합니다 System.out.println("저의 이름은 " + name); // 스캐너를 닫습니다 input.close(); } }
출력 결과
이름 입력: Jack 저의 이름은 Jack
위의 예제에서 주의해야 할 다음과 같은 행을 확인해 주세요
Scanner input = new Scanner(System.in);
여기서는 input이라는 Scanner 객체를 생성했습니다.
System.in 파라미터는 표준 입력에서 입력을 가져오는 데 사용됩니다. 키보드에서 입력을 가져오는 것과 같습니다.
그런 다음, Scanner 클래스의 nextLine() 메서드를 사용하여 사용자에서 한 줄 텍스트를 읽습니다.
Scanner에 대해 조금 더 알게 되었으니, 더 깊이 탐구해 보겠습니다.
위의 예제에서 볼 수 있듯이, java.util.Scanner 패키지를 먼저 가져오고 Scanner 클래스를 사용할 수 있습니다.
import java.util.Scanner;
위와 같이, 패키지를 가져온 후 Scanner 객체를 생성할 수 있습니다.
//입력 스트림에서 입력을 읽기 Scanner sc1 = new Scanner(InputStream input); //파일에서 입력을 읽기 Scanner sc2 = new Scanner(File file); //문자열에서 입력을 읽기 Scanner sc3 = new Scanner(String str);
여기서는 Scanner 클래스의 객체를 생성하여 각각 다음과 같이 입력을 읽습니다.InputStream파일과 문자열 입력을 읽습니다.
Scanner 클래스는 다양한 메서드를 제공하여 다양한 입력 타입을 읽을 수 있게 합니다.
메서드 | 설명 |
---|---|
nextInt() | 사용자에서 int 값 읽기 |
nextFloat() | 사용자에서 float 값 읽기 |
nextBoolean() | 사용자에서 boolean 값 읽기 |
nextLine() | 사용자에서 행 텍스트 읽기 |
next() | 사용자에서 단어를 읽기 |
nextByte() | 사용자로부터 byte 값 읽기 |
nextDouble() | 사용자로부터 double 값 읽기 |
nextShort() | 사용자로부터 short 값 읽기 |
nextLong() | 사용자로부터 long 값 읽기 |
import java.util.Scanner; class Main { public static void main(String[] args) { //스캐너 객체 생성 Scanner input = new Scanner(System.in); System.out.println("입력하려는 정수: ") //정수 값을 읽기 int data1 = input.nextInt(); System.out.println("use nextInt(): ") + data1); input.close(); } }
출력 결과
입력하려는 정수: 22 use nextInt(): 22
위의 예제에서는 nextInt() 메서드를 사용하여 정수 값을 읽었습니다.
import java.util.Scanner; class Main { public static void main(String[] args) { //Scanner 객체를 생성합니다 Scanner input = new Scanner(System.in); System.out.print("입력 부호자리수 값: ") //부호자리수 값을 읽기 double value = input.nextDouble(); System.out.println("use nextDouble(): ") + value); input.close(); } }
출력 결과
입력 부호자리수 값: 33.33 use nextDouble(): 33.33
위의 예제에서는 nextDouble() 메서드를 사용하여 부호자리수 값을 읽었습니다.
import java.util.Scanner; class Main { public static void main(String[] args) { //Scanner 객체를 생성합니다 Scanner input = new Scanner(System.in); System.out.print("이름을 입력하세요: "); //读取整个单词 String value = input.next(); System.out.println("Using next(): ") + value); input.close(); } }
출력 결과
이름을 입력하세요: Jonny Walker Using next(): Jonny
위의 예제에서는 next() 메서드를 사용하여 사용자로부터 문자열을 읽었습니다.
여기서는 전체 이름을 제공했지만, next() 메서드는 이름만을 읽습니다.
이는 next() 메서드가 입력을공백문자. 공백을 만나면 문자열을 반환합니다(공백을 포함하지 않음).
import java.util.Scanner; class Main { public static void main(String[] args) { //Scanner 객체를 생성합니다 Scanner input = new Scanner(System.in); System.out.print("이름을 입력하세요: "); //전체 행을 읽기 String value = input.nextLine(); System.out.println("nextLine()를 사용하여:"); + value); input.close(); } }
출력 결과
이름을 입력하세요: Jonny Walker nextLine()를 사용하여: Jonny Walker
첫 번째 예제에서는 nextLine() 메서드를 사용하여 사용자로부터 문자열을 읽었습니다.
next()와 다르게, nextLine() 메서드는 공백을 포함한 전체 입력 행을 읽습니다. 이 메서드가 다음 행 문자 \n을 만나면 종료됩니다.
Java 스캐너는 대정수和大십진수 값을 읽는 데 사용될 수 있습니다.
nextBigInteger() - 사용자로부터 대정수 값을 읽기
nextBigDecimal() - 사용자로부터 대십진수 값을 읽기
import java.math.BigDecimal; import java.math.BigInteger; import java.util.Scanner; class Main { public static void main(String[] args) { //Scanner 객체를 생성합니다 Scanner input = new Scanner(System.in); System.out.print("대정수를 입력하세요: "); //대정수를 읽기 BigInteger value1 input.nextBigInteger(); System.out.println("nextBigInteger()를 사용하여:"); + value1); System.out.print("대십진수를 입력하세요: "); //대십진수를 읽기 BigDecimal value2 input.nextBigDecimal(); System.out.println("nextBigDecimal()를 사용하여: ") + value2); input.close(); } }
출력 결과
대정수 값을 입력하세요: 987654321 nextBigInteger()를 사용하여: 987654321 대십进制 값을 입력하세요: 9.55555 nextBigDecimal()를 사용하여: 9.55555
위의 예제에서는 java.math.BigInteger와 java.math.BigDecimal 패키지를 사용하여 BigInteger와 BigDecimal를 각각 읽습니다.
스캐너 클래스는 전체 행을 읽고 이 행을 토큰으로 나눕니다. 토큰은 Java 컴파일러에 의미가 있는 작은 요소입니다. 예를 들어
예를 들어, 입력 문자열이 있습니다:
He is 22
이 경우, 스캔 프로그램 객체는 전체 행을 읽고 이 문자열을 토큰으로 나눕니다: “ He ”,“ is ”와 “ 22 ”그런 다음, 객체는 각 토큰을 순회하며 각 토큰의 다른 메서드를 사용하여 각 토큰을 읽습니다.
주의기본적으로, 공백이 표시로 사용됩니다.