차례:
비디오: How to find the Area of Circle in JAVA 2024
Java 1.5가 나오기 전까지는 콘솔 기반 Java 프로그램에서 사용자가 텍스트 입력을받는 것이 쉽지 않았습니다. 그러나 Java 1.5에서 사용자로부터 입력을받는 작업을 단순화하기 위해
Scanner
라는 새로운 클래스가 도입되었습니다. 여기에서
Scanner
클래스를 사용하여 사용자로부터 간단한 입력 값을 얻습니다. 여기서 제시 한 기술은이 책의 나머지 부분에 나오는 많은 프로그램에서 사용됩니다.
클래스를 사용하기 때문에 이전 버전의 Java를 사용하고 있다면 이것을 읽어야합니다.
아래의 간단한 프로그램은
Scanner
클래스를 사용하여 사용자로부터 정수 값을 읽은 다음 그 값을 콘솔에 다시 표시하여 프로그램이 사용자가 입력 한 값을 받았는지 확인합니다. 이 프로그램의 콘솔 창의 샘플은 다음과 같습니다.
정수 입력:
5 5를 입력했습니다.
첫 번째 줄에
정수 입력:
메시지가 표시되면서 프로그램이 시작됩니다. 그런 다음 번호를 입력 할 때까지 기다립니다. 숫자 (예: 5)를 입력하고 Enter 키를 누르면 두 번째 줄에 확인 메시지 (
5
입력)가 표시됩니다.
import java. util. 스캐너;
@@ ra1
{ 정적 스캐너 sc = 새 스캐너 (시스템 인);
@@ ra6
public static void main (String [] args) {
시스템. 아웃. print ("정수 입력:");
@@ ra10
int x = sc. nextInt (); @ ra11
시스템. 아웃. println (""+ x + "."입력했습니다.); @@ ra12
} }
Java에서 Scanner 클래스 가져 오기
프로그램에서
Scanner
클래스를 사용하려면 먼저 가져와야합니다. 그렇게하기 위해, 프로그램 시작시, 클래스 선언 앞에
import
문을 코딩합니다.
import java. util. 스캐너;
java
와
util
은 대문자로 표기되지 않지만
스캐너
는 표기합니다.
자바에서 다른 클래스를 사용하는 경우. util
패키지를 사용하는 경우
import
문과 같이
import
문을 코딩하여 전체 패키지를 가져올 수 있습니다. util. *;
Java에서 Scanner 객체 선언 및 생성
Scanner
클래스를 사용하여 콘솔에서 입력을 읽으려면
Scanner
변수를 선언하고 인스턴스를 만들어야합니다
스캐너
클래스의
스캐너
변수를 클래스 변수로 만들고 클래스 변수 이니셜 라이저에
스캐너
객체를 만들 수 있습니다 (위의 프로그램의 6 행 참조):
정적 스캐너 sc = 새 스캐너 (시스템 인);
그렇게하면 클래스의 모든 메소드에서
sc
변수를 사용할 수 있습니다.
스캐너
개체를 만들려면
새
키워드를 사용하고
스캐너
클래스 생성자를 호출합니다.
Scanner
클래스에는 입력이 발생하는
입력 스트림
을 나타내는 매개 변수가 필요합니다. 시스템을 사용할 수 있습니다. 여기서 는 표준 키보드 콘솔 입력을 지정합니다.
입력 받기
사용자로부터 입력 값을 읽으려면 아래 나열된
스캐너
클래스의 메서드 중 하나를 사용할 수 있습니다. 보시다시피 원시 데이터 유형에는 별도의 메소드가 있습니다.
입력 값을 얻는 스캐너 클래스 메소드
메서드
boolean nextBoolean () | 사용자로부터 |
부울
|
값을 읽습니다.
byte nextByte ()
사용자로부터 |
|
값을 읽습니다.
double nextDouble ()
사용자로부터 |
double
|
값을 읽습니다.
float nextFloat ()
사용자로부터 |
float
|
값을 읽습니다.
int nextInt ()
사용자로부터 |
int
|
값을 읽습니다.
String nextLine ()
사용자로부터 |
String
|
값을 읽습니다.
long nextLong ()
사용자로부터 |
long
|
값을 읽습니다.
short nextShort ()
사용자로부터 |
짧은
|
값을 읽습니다.
표의 첫 번째 열에는 각 메소드 목록이 메소드에서 반환 한 값의 유형으로 시작한다는 것을 알 수 있습니다. 예를 들어
nextInt |
메서드는
int
값을 반환합니다. 또한 각 메소드는 빈 괄호 세트로 끝납니다. 즉, 이러한 방법에는 매개 변수가 필요하지 않습니다. 메소드에 매개 변수가 필요한 경우 매개 변수는 이러한 괄호 안에 나열됩니다.
이 메소드는 사용자로부터 값을 읽고 값을 리턴하기 때문에 값을 변수에 할당하는 명령문에서이를 사용합니다. 예를 들어 11 행은
int
를 읽고이를
x
라는 변수에 지정합니다.
nextInt
메서드가 실행되면 프로그램은 사용자가 콘솔 창에 값을 입력 할 때까지 기다립니다. 프로그램이 예상하는 입력의 종류를 사용자에게 알리려면 일반적으로
시스템을 호출해야합니다. 아웃.
스캐너
메서드를 호출하여 입력을 얻기 전에 print
메서드를 호출하십시오. 10 호선은
시스템을 호출합니다. 아웃.
메시지를 표시하여
콘솔에 정수
를 입력하십시오. 그러면 사용자는 프로그램이 입력을 기다리고 있음을 알게됩니다.
사용자가 올바른 유형으로 변환 할 수없는 값을 입력하면 프로그램이 충돌하여 갑자기 종료됩니다. 프로그램이 충돌하면 오류의 원인을 나타내는 암호 오류 메시지가 표시됩니다. 예를 들어, 실제 숫자 대신
세 개의
를 입력하면 콘솔 창은 "main"자바에서
정수를 입력하십시오:
세
예외가 표시됩니다. util. InputMismatchException
at java. util. 스캐너. throwFor (스캐너. java: 819) at java. util. 스캐너. next (스캐너. java: 1431) at java. util. 스캐너. nextInt (Scanner. java: 2040)
at java. util. 스캐너. nextInt (Scanner. java: 2000)
(ScannerApp)main (ScannerApp. java: 11)
이 메시지는
InputMismatchException
이라는
예외 가 발생했음을 나타냅니다. 즉, 프로그램은 정수를 보려고하지만 대신 다른 것을 얻었습니다. 프로그램이 더 친숙한 메시지를 표시하고 올바른 값을 입력 할 때 사용자에게 다른 기회를 제공 할 수 있도록 이러한 예외를 제공하는 방법을 모르는 경우 사용자가 잘못된 데이터를 입력 할 경우, 프로그램이 비정상적으로 중단됩니다. 잘못된 입력 데이터로 인해
nextInt
및 유사한 메소드가 충돌하지 않도록하려면 여기에 나열된 방법 중 하나를 사용하여 다음 입력을 테스트하여 유효한지 확인하십시오.
유효한 입력 값을 검사하는 스캐너 클래스 메서드
메서드
설명
사용자가 입력 한 다음 값이 유효한 | boolean |
값.
|
boolean hasNextByte ()
사용자가 입력 한 다음 값이 유효한
바이트
값인 경우
true |
를 반환합니다.
|
boolean hasNextDouble ()
사용자가 입력 한 다음 값이 유효한
double
값인 경우
true |
를 반환합니다.
|
boolean hasNextFloat ()
사용자가 입력 한 다음 값이 유효한
부동 소수점
값인 경우
true |
를 반환합니다.
|
boolean hasNextInt ()
사용자가 입력 한 다음 값이 유효한
int
값인 경우
true |
를 반환합니다.
|
boolean hasNextLong ()
사용자가 입력 한 다음 값이 유효한
long
값인 경우
true |
를 반환합니다.
|
boolean hasNextShort ()
사용자가 입력 한 다음 값이 유효한
짧은
값인 경우
true |
를 반환합니다.
|