スキャナーnextLine()メソッド
1. 概要
このクイックチュートリアルでは、 java .util.ScannerクラスのnextLine()メソッドについて簡単に説明します。もちろん、練習。
2. Scanner.nextLine()
java.util.ScannerクラスのnextLine()メソッドは、行区切り文字が見つかるまで現在の位置からスキャンします。 このメソッドは、Stringを現在の位置から行の終わりまで返します。
したがって、操作後、スキャナーの位置は区切り文字に続く次の行の先頭に設定されます。
このメソッドは、入力データを検索して行区切り記号を探します。 行区切り文字が存在しない場合は、スキップする行を検索するすべての入力データをスキャンする場合があります。
nextLine()メソッドのシグネチャは次のとおりです。
public String nextLine()
このメソッドはパラメーターを取りません。 最後の行区切り記号を除いて、現在の行を返します。
その使用法を見てみましょう:
try (Scanner scanner = new Scanner("Scanner\nTest\n")) {
assertEquals("Scanner", scanner.nextLine());
assertEquals("Test", scanner.nextLine());
}
これまで見てきたように、このメソッドは、行区切り記号が見つかるまで、現在のスキャナー位置からの入力を返します。
try (Scanner scanner = new Scanner("Scanner\n")) {
scanner.useDelimiter("");
scanner.next();
assertEquals("canner", scanner.nextLine());
}
上記の例では、 next()を呼び出すと、‘S’ が返され、スキャナーの位置が‘c’を指すように進みます。
したがって、 nextLine()メソッドを呼び出すと、行区切り文字が見つかるまで、現在のスキャナー位置からの入力が返されます。
nextLine()メソッドは、2種類のチェックされた例外をスローします。
まず、行区切り文字が見つからない場合、NoSuchElementExceptionをスローします。
@Test(expected = NoSuchElementException.class)
public void whenReadingLines_thenThrowNoSuchElementException() {
try (Scanner scanner = new Scanner("")) {
scanner.nextLine();
}
}
次に、スキャナーが閉じている場合、IllegalStateExceptionをスローします。
@Test(expected = IllegalStateException.class)
public void whenReadingLines_thenThrowIllegalStateException() {
Scanner scanner = new Scanner("");
scanner.close();
scanner.nextLine();
}
3. 結論
この要点の記事では、Javaの ScannerクラスのnextLine()メソッドについて説明しました。
さらに、単純なJavaプログラムでの使用法を調べました。 最後に、メソッドによってスローされる例外と、それを示すサンプルコードを確認しました。
いつものように、実際の例の完全なソースコードは、GitHubでから入手できます。