스캐너를 사용하여 Java에서 다중 문자열 입력 [코딩 예제 포함]

게시 됨: 2021-02-05

목차

소개

java.util 패키지에서 스캐너는 double, integer, string 등과 같은 기본 유형의 여러 입력을 수집하는 데 도움이 되는 클래스 중 하나입니다. 시간이 작용하는 Java 프로그램에서 입력을 읽는 효율적인 방법은 아니지만 제약 조건으로서 의심할 여지 없이 사용자로부터 여러 입력을 수집하는 가장 쉬운 방법 중 하나입니다. 이 블로그에서는 스캐너 클래스를 사용하여 Java 프로그램에서 사용자로부터 여러 문자열 입력을 수집하는 방법을 배웁니다.

스캐너를 사용하여 여러 입력을 수행하는 방법

Scanner 클래스를 사용하기 전에 프로그램에서 java.util 패키지를 가져와야 합니다. 다음 표는 Java 프로그램에서 사용자로부터 다양한 유형의 여러 입력을 받는 데 사용되는 방법을 나열합니다.

방법 입력
넥스트 인트() 정수
다음플로트() 뜨다
nextDouble() 더블
다음롱()
다음짧은() 짧은
다음() 한 단어
다음 줄() 문자열 줄
nextBoolean() 부울

자바 nextLine() 메소드 사용

java.util.Scanner.nextLine() 메서드는 스캐너를 현재 줄을 지나서 진행하여 건너뛴 줄을 반환합니다. 현재 줄 끝에 줄 구분 기호가 있는 경우 이 메서드는 이를 제외하고 현재 줄에서 문자열의 나머지 부분을 반환합니다. 스캐너는 다음 줄 시작 부분에 설정되어 단어의 공백을 포함하여 전체 문자열을 읽습니다.

nextLine() 메서드의 구문은 다음과 같습니다.

공개 문자열 nextLine()

이 메서드는 다음 두 가지 예외를 throw합니다.

  • NoSuchElementException – 문자열이 비어 있거나 행을 찾을 수 없는 경우입니다.
  • IllegalStateException – 스캐너가 닫힌 경우.

예시

다음 예제는 java.util.Scanner.nextLine() 메소드가 사용자로부터 여러 입력을 수집하는 방법을 보여줍니다.

가져오기 java.util.Scanner;

공개 클래스 SacnnerDemoMultipleString

{

공개 정적 무효 메인(String[] 인수)

{

스캐너 데모 = new Scanner(System.in);

System.out.print("인쇄할 여러 입력을 입력하세요: ");

//정수 입력을 받는다

문자열[] 문자열 = 새 문자열 [demo.nextInt()];

//위의 입력에서 <enter> 소비

데모.nextLine();

for (int i = 0; i < string.length; i++)

{

문자열[i] = 데모.nextLine();

}

System.out.println("\n다음을 입력하셨습니다: ");

//for-each 루프에서 문자열을 출력합니다.

for(문자열 str: 문자열)

{

System.out.println(str);

// 스캐너를 닫는다

스캐너.닫기();

}

}

}

위의 프로그램은 다음 출력을 인쇄합니다

인쇄하려는 여러 입력을 입력하십시오: 7

미샤

괴롭히다

로버트

하비

처녀

레이첼

제니퍼

다음 입력을 입력했습니다.

미샤

괴롭히다

로버트

하비

처녀

레이첼

제니퍼

자바 nextInt() 메소드 사용

java.util.Scanner.nextInt() 메소드는 사용자가 제공한 입력을 정수로 스캔합니다. 정수가 발견되면 스캐너는 일치하는 입력을 지나 진행합니다.

nextInt() 메서드의 구문은 다음과 같습니다.

공개 int nextInt()

이 메서드는 다음 세 가지 예외를 throw합니다.

  • InputMismatchException – 다음 토큰이 정수 정규식과 일치하지 않거나 다음 토큰이 범위를 벗어난 경우입니다.
  • NoSuchElementException – 입력이 소진된 경우.
  • IllegalStateException – 스캐너가 닫힌 경우.

예시

다음 예제는 java.util.Scanner.nextInt() 메소드가 사용자로부터 여러 입력을 수집하는 방법을 보여줍니다.

// Scanner를 사용하여 정수를 스캔하는 Java 프로그램

// 클래스를 만들고 평균을 출력합니다.

가져오기 java.util.Scanner;

공개 클래스 ScannerDemoInteger

{

공개 정적 무효 메인(String[] 인수)

{

스캐너 데모 = new Scanner(System.in);

// 입력 요소의 합과 개수 초기화

정수 합계 = 0, 개수 = 0;

// 정수 값이 있는지 확인

동안 (demo.hasNextInt())

{

// 정수 값 스캔

정수 번호 = demo.nextInt();

합계 += 숫자;

카운트++;

}

정수 평균 = 합계 / 개수;

System.out.println("평균: " + 평균);

}

}

위의 프로그램에는 다음 입력이 제공됩니다.

101

223

238

892

99

500

728

위의 프로그램은 다음 출력을 인쇄합니다.

평균: 397

또한 읽기: Java MVC 프로젝트

자바 nextDouble() 메소드 사용

java.util.Scanner.nextDouble() 메소드는 사용자가 제공한 입력을 이중으로 스캔합니다. float 정규식이 발견되면 스캐너는 일치하는 입력을 지나쳐 진행합니다.

nextInt() 메서드의 구문은 다음과 같습니다.

공개 더블 nextDouble()

이 메서드는 다음 세 가지 예외를 throw합니다.

  • InputMismatchException – 다음 토큰이 float 정규식과 일치하지 않거나 다음 토큰이 범위를 벗어난 경우.
  • NoSuchElementException – 입력이 소진된 경우.
  • IllegalStateException – 스캐너가 닫힌 경우.

예시

예제는 java.util.Scanner.nextDouble() 메소드가 사용자로부터 여러 입력을 수집하는 방법을 보여줍니다.

// Scanner를 사용하여 float를 스캔하는 Java 프로그램

가져오기 java.util.Scanner;

공개 클래스 ScannerDoubleRegularExpression {

공개 정적 무효 메인(문자열[] 인수) {

String new = "좋은 아침입니다! 3 + 3.0 = 6 참”;

// 지정된 String 객체로 새 스캐너 객체를 작성합니다.

스캐너 데모 = 새 스캐너

// US 로케일을 사용하여 문자열에서 double을 식별할 수 있습니다.

demo.useLocale(Locale.US);

// 다음 이중 토큰을 검색하고 인쇄합니다.

동안 (demo.hasNext()) {

// 다음이 double이면 발견된 내용을 인쇄하고 float 정규식을 인쇄합니다.

if (demo.hasNextDouble()) {

System.out.println("찾음:" + demo.nextDouble());

}

// 이중 정규식이 발견되지 않으면 "Not Found"와 토큰을 출력합니다.

System.out.println("찾을 수 없음 :" + demo.next());

}

// 스캐너를 닫는다

스캐너.닫기();

}

}

위 프로그램의 결과는 다음과 같습니다.

찾을 수 없음: 좋음

찾을 수 없음: 아침!

발견: 3.0

찾을 수 없음: +

발견: 3.0

찾을 수 없음: =

발견: 6.0

찾을 수 없음: 사실

세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

예를 들어, 이 블로그에 제공된 코드는 목적이며 개인의 필요에 따라 수정할 수 있습니다. Java 및 전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 PG 프로그램을 확인하십시오. 프로젝트 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

Java에서 Scanner 클래스는 무엇입니까?

Scanner 클래스를 사용하면 Java의 콘솔 입력을 사용하지 않고 키보드에서 값을 읽을 수 있습니다. Java의 콘솔 입력은 느리고 리디렉션도 느립니다. Scanner는 더 빠르고 편리하므로 Java의 콘솔 입력 대신 Scanner를 사용해야 합니다. 스캐너는 Java의 일반 입력 스트림을 사용하므로 다른 파서와 연결할 수 있습니다. 스캐너는 또한 Java의 콘솔 입력보다 사용하기 쉽습니다. 스캐너에는 BufferedReader, InputStreamReader 및 FileReader의 세 가지 주요 하위 클래스가 있습니다. 가장 일반적인 것은 BufferedReader입니다. BufferedReader는 InputStreamReader가 읽을 수 있는 모든 것을 읽을 수 있으며 버퍼라는 한 가지 큰 이점이 있습니다. 버퍼는 한 번에 한 줄을 보유할 수 있습니다. 입력 스트림에는 버퍼가 전혀 없습니다. next()를 호출하면 값을 반환합니다. 즉, 값으로 작업을 수행하기 전에 값을 수집해야 합니다. 스캐너가 알아서 해줍니다.

Java에서 문자열 빌더란 무엇입니까?

문자열 빌더는 문자열을 생성하는 새로운 유형의 클래스입니다. 문자열 빌더 클래스는 Java 1.3 버전부터 도입되었습니다. 여러 문자열을 연결하여 문자열을 만들 수 있으며 더 많은 문자열을 추가하면 자동으로 크기가 조정됩니다. 문자열 연결과 비교할 때 문자열 빌더를 사용하면 가독성이 떨어지지만 더 빠르고 유연합니다. StringBuilder 개체는 문자열 값을 만드는 데 사용되는 개체입니다. StringBuilder 개체에는 여러 메서드가 있습니다.

Java에서 InputStreamReader란 무엇입니까?

InputStreamReader는 입력 스트림에서 문자 스트림을 읽고 지정된 문자 인코딩으로 디코딩합니다. 한 인코딩에서 다른 인코딩으로 문자 스트림을 변환하는 쉬운 방법을 제공합니다. InputStreamReader는 기본 스트림에서 바이트를 읽고 지정된 charset 인코딩을 사용하여 문자로 변환합니다. 바이트 스트림 데이터를 문자 스트림 데이터로 변환하는 데 사용되는 클래스입니다. 바이트 스트림은 바이너리 데이터를 나타내고 문자 스트림은 텍스트를 나타냅니다.