まず、Java の Scanner クラスのメソッド next() と nextLine() がユーザー入力を取得するために使用されることがわかります。
(推奨チュートリアル: java 入門チュートリアル)
2 つの違いを見てみましょう:
next() は、スペース/Tabキーの前/後の文字のみを取得します。スペース/Tab キー/Enter キーが見つかるまで文字の取得を開始します (前後の文字はカウントしません); nextLine() は文字の前後のスペース/Tab キーを取得し、Enter キーが見つかったときに終了します。
例:
import java.util.Scanner; import java.util.Vector; public class Main{ public static void main(String args[]) { Scanner reader=new Scanner(System.in); String s1=reader.nextLine(); String s2=reader.next(); System.out.println(s1); System.out.println(s2); } }
実行結果:
import java.util.Scanner; import java.util.Vector; public class Main{ public static void main(String args[]) { Scanner reader=new Scanner(System.in); String s1=reader.next(); // String ss=reader.nextLine(); String s2=reader.nextLine(); System.out.println(s1); System.out.println(s2); } }(推奨チュートリアル:
java コース )
サンプルを実行する:
aaaa bbbb ccccaaaa の後にスペースがあるため、next は必要ありません。読み取り後、残りの bbbb cccc は nextLine によって取得されました。解決策は、上記のコードに記載されている nextLine() を追加することです
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner reader=new Scanner(System.in); String s1=reader.next(); String s2=reader.nextLine(); System.out.println(s1); System.out.println(s2); } }実行結果:
abcdefg abcdefg //剩下两行Input abcdefg 以降の復帰プログラムが終了し、abcdefg と 2 つの改行が出力されるのは、nextLine が next 以降の復帰を吸収するためです。 2 つの nextLine を互いに接続しないように十分注意してください。 next を使用する場合は、このようなことは起こりません。next によって吸収される最初の要件は文字であり、最後の要件はスペース、Tab キー、および Enter キーであるためです。
以上がJavaのnext()とnextLine()の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。