CodeGym /Java Blog /Toto sisi /Java 中的掃描器 nextLine() 方法
John Squirrels
等級 41
San Francisco

Java 中的掃描器 nextLine() 方法

在 Toto sisi 群組發布
Scanner,Java 程式語言中的一個類,可以使用正規表示式解析原始類型和字串。Java 中的nextLine ()掃描器方法將此掃描器移至目前行之外並傳回跳過的輸入。本文稍後將 詳細介紹nextLine()Scanner 。

簡單介紹 Scanner 類別及其運作原理

粗略地說,java.util.Scanner類別允許您從各種來源(包括控制台)讀取輸入。它看起來確實與經典掃描器相似。此硬體設備具有複雜的架構,但描述其工作卻非常簡單。掃描器讀取使用者在其上放置的日期(例如紙張),並將資料(如圖片或 pdf 檔案)保存在記憶體中。Java 掃描器就像真實的掃描器一樣,從您為其指定的來源讀取資料。例如,來自字串、檔案、控制台。然後它會識別該資訊並根據需要進行處理。例如,程式要求從控制台輸入一些資料並讀取它,或想要從檔案中讀取它。對於此操作,掃描器有多種與“下一步”一詞結合的方法。例如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);
   }
}
輸出可以是例如以下內容:
輸入任何短語,我會重複它!...這是我的短語這是我的短語
如果您使用next()方法而不是nextLine(),您將只得到句子的第一個字。
輸入任何短語,我會重複它!...這是我的短語
讓我們來看一個工作掃描器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: d:\myTest.txt 在java.base/java.io.FileInputStream.open0(本機方法) 在java.base/java.io.FileInputStream.open(FileInputStream .java :213) 在java.base/java.io.FileInputStream.<init>(FileInputStream.java:155) 在java.base/java.util.Scanner.<init>(Scanner.java:639) 在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