English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 가이드

Java 흐름 제어

Java 배열

Java 동적 객체(I)

Java 동적 객체(II)

Java 동적 객체(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map集合

Java Set集合

Java 입력출력(I/O)

Java Reader/Writer

Java 다른 주제

Java Scanner 클래스

이 튜토리얼에서는 예제를 통해 Java Scanner 및 메서드를 배웁니다.

java.io 패키지의 PrintWriter 클래스는 일반적으로 읽을 수 있는 형식(텍스트)으로 출력 데이터를 쓸 수 있습니다.

java.util 패키지의 Scanner 클래스는 다양한 소스(예: 입력 스트림, 사용자, 파일 등)에서 입력 데이터를 읽는 데 사용됩니다. 예제를 들어 보겠습니다.

예제1스캐너를 사용하여 한 줄 텍스트를 읽습니다

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;

Java로 스캐너 프로그램 객체를 생성합니다

위와 같이, 패키지를 가져온 후 Scanner 객체를 생성할 수 있습니다.

//입력 스트림에서 입력을 읽기
Scanner sc1 = new Scanner(InputStream input);
//파일에서 입력을 읽기
Scanner sc2 = new Scanner(File file);
//문자열에서 입력을 읽기
Scanner sc3 = new Scanner(String str);

여기서는 Scanner 클래스의 객체를 생성하여 각각 다음과 같이 입력을 읽습니다.InputStream파일과 문자열 입력을 읽습니다.

Java 스캐너 입력 메서드

Scanner 클래스는 다양한 메서드를 제공하여 다양한 입력 타입을 읽을 수 있게 합니다.

메서드설명
nextInt()사용자에서 int 값 읽기
nextFloat()사용자에서 float 값 읽기
nextBoolean()사용자에서 boolean 값 읽기
nextLine()사용자에서 행 텍스트 읽기
next()사용자에서 단어를 읽기
nextByte()사용자로부터 byte 값 읽기
nextDouble()사용자로부터 double 값 읽기
nextShort()사용자로부터 short 값 읽기
nextLong()사용자로부터 long 값 읽기

예제2:Java 스캐너 nextInt()

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() 메서드를 사용하여 정수 값을 읽었습니다.

예제3:Java 스캐너 nextDouble() 메서드

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() 메서드를 사용하여 부호자리수 값을 읽었습니다.

예제4:Java 스캐너 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.next();
      System.out.println("Using next(): ") + value);
      input.close();
   }
}

출력 결과

이름을 입력하세요: Jonny Walker
Using next(): Jonny

위의 예제에서는 next() 메서드를 사용하여 사용자로부터 문자열을 읽었습니다.

여기서는 전체 이름을 제공했지만, next() 메서드는 이름만을 읽습니다.

이는 next() 메서드가 입력을공백문자. 공백을 만나면 문자열을 반환합니다(공백을 포함하지 않음).

예제5:Java 스캐너 nextLine() 메서드

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 스캐너 BigInteger와 BigDecimal

Java 스캐너는 대정수和大십진수 값을 읽는 데 사용될 수 있습니다.

  • nextBigInteger() - 사용자로부터 대정수 값을 읽기

  • nextBigDecimal() - 사용자로부터 대십진수 값을 읽기

예제4:BigInteger와 BigDecimal를 읽기

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 스캐너의 작동 방식

스캐너 클래스는 전체 행을 읽고 이 행을 토큰으로 나눕니다. 토큰은 Java 컴파일러에 의미가 있는 작은 요소입니다. 예를 들어

예를 들어, 입력 문자열이 있습니다:

He is 22

이 경우, 스캔 프로그램 객체는 전체 행을 읽고 이 문자열을 토큰으로 나눕니다: “ He ”,“ is ”와 “ 22 ”그런 다음, 객체는 각 토큰을 순회하며 각 토큰의 다른 메서드를 사용하여 각 토큰을 읽습니다.

주의기본적으로, 공백이 표시로 사용됩니다.