CodeGym /Java Blog /무작위의 /Java의 Scanner nextLine() 메소드
John Squirrels
레벨 41
San Francisco

Java의 Scanner nextLine() 메소드

무작위의 그룹에 게시되었습니다
Scanner - 정규식을 사용하여 기본 유형과 문자열을 구문 분석할 수 있는 Java 프로그래밍 언어의 클래스입니다. Java의 nextLine () 스캐너 메소드는 이 스캐너를 현재 행 너머로 이동하고 건너뛴 입력을 반환합니다. 이 문서의 뒷부분에서 nextLine()Scanner 에 대해 자세히 설명합니다 .

Scanner 클래스와 작동 방식에 대해 간략히 설명합니다.

대략적으로 말하면, java.util.Scanner 클래스를 사용하면 콘솔을 포함한 다양한 소스에서 입력을 읽을 수 있습니다. 정말 클래식 스캐너와 비슷해 보입니다. 이 하드웨어 장치는 복잡한 아키텍처를 가지고 있지만 해당 작업을 설명하는 것은 매우 간단합니다. 스캐너는 종이 등 사용자가 입력한 날짜를 읽어서 사진이나 PDF 파일처럼 메모리에 보관합니다. 실제 스캐너와 마찬가지로 Java 스캐너는 사용자가 지정한 소스에서 데이터를 읽습니다. 예를 들어 문자열, 파일, 콘솔에서. 그런 다음 이 정보를 인식하고 필요에 따라 처리합니다. 예를 들어, 프로그램은 콘솔에서 일부 데이터를 입력하도록 요청하고 이를 읽거나 파일에서 읽으려고 합니다. 이 작업을 위해 스캐너에는 "next"라는 단어와 결합된 여러 가지 방법이 있습니다. next() , nextLine() , nextInt() , nextDouble() 과 같은 것입니다 .

nextLine() 메서드

위에서 말했듯이 스캐너의 객체는 기본적으로 공백인 구분 기호 패턴을 사용하여 입력을 토큰으로 분할하지만 문자열( java.lang.String ) 또는 정규 표현식( java.util.regex. 패턴 ). 결과 토큰은 다양한 next 메소드를 사용하여 다양한 유형의 값으로 변환될 수 있습니다. Java의 Scanner nextLine() 메서드는 이 스캐너를 현재 줄을 지나서 건너뛴 입력을 반환합니다. 일반 next()는 이 스캐너에서 다음 완전한 토큰을 찾아 반환합니다. nextLine() 메서드는 입력에서 줄 구분 기호를 계속 검색하므로 줄 구분 기호가 없는 경우 건너뛸 줄을 찾는 모든 입력을 버퍼링할 수 있습니다. 이 메서드는 다음 예외를 발생시킵니다.
  • NoSuchElementException: 행을 찾을 수 없는 경우 발생합니다.
  • IllegalStateException: 이 스캐너가 닫히면 발생합니다.

nextLine() 예

사용자가 콘솔에 단어나 문구를 입력하고 그가 입력한 단어나 문구를 보여줄 수 있다고 가정해 보겠습니다.
import java.util.Scanner;
//…scanner.nextLine() example
public class ScannerTest {
   public static void main(String[] args) {
       Scanner scan = new Scanner(System.in);
       System.out.println("Enter any phrase and I'll repeat it!... ");
      //here we are reading the next line:
       String sentence = scan.nextLine();
       System.out.println(sentence);
   }
}
예를 들어 출력은 다음과 같을 수 있습니다.
아무 문구나 입력하면 반복해 보겠습니다!... 여기 내 문구가 있습니다. 여기 내 문구가 있습니다.
nextLine() 대신 next() 메소드를 사용하면 문장의 첫 번째 단어만 얻을 수 있습니다.
아무 문구나 입력하면 반복해 보겠습니다!... 여기 제 문구가 있습니다
파일에서 읽기 위해 작동하는 스캐너 nextLine() 메서드 의 예를 들어 보겠습니다 . 이 예에서는 txt 파일 myTest.txt를 만들었습니다. 해당 파일에는 두 줄이 있습니다.
내 테스트 파일과 다음 줄은 여기에 있어요
다음은 파일에서 두 줄을 읽는 프로그램입니다.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerTest {

   public static void main(String[] args) throws FileNotFoundException {
       Scanner scanner = new Scanner(new File("d://myTest.txt"));

       String textFromFile1 = scanner.nextLine();
       String textFromFile2 = scanner.nextLine();
       System.out.println(textFromFile1);
       System.out.println(textFromFile2);
       scanner.close();

   }
}
출력은 다음과 같습니다
내 테스트 파일과 다음 줄은 여기에 있어요
파일 경로가 잘못되었거나 해당 이름의 파일이 존재하지 않으면 다음 출력이 표시됩니다.
스레드 "main" java.io.FileNotFoundException의 예외: java.base/java.io.FileInputStream.open0(Native Method)의 d:\myTest.txt, java.base/java.io.FileInputStream.open(FileInputStream.java) :213) at java.base/java.io.FileInputStream.<init>(FileInputStream.java:155) at java.base/java.util.Scanner.<init>(Scanner.java:639) at ScannerTest.main( ScannerTest.java:8)
프로그램이 파일을 찾았지만 비어 있는 경우 NoSuchElementException이 발생합니다.
스레드 "main" java.util.NoSuchElementException의 예외: ScannerTest.main(ScannerTest.java:10)의 java.base/java.util.Scanner.nextLine(Scanner.java:1651)에서 행을 찾을 수 없습니다.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION