Java語言中的Scanner類提供了兩個常用的讀取控制臺輸入的方法:nextLine()和next()。它們的作用是不同的。
nextLine()方法用于讀取一整行的文本。它會讀取并返回輸入流中的下一行文本,包括換行符。例如:
Scanner scanner = new Scanner(System.in); String line = scanner.nextLine(); System.out.println(line);
當我們在控制臺輸入"Hello World!"并按下回車鍵時,上面的代碼會輸出"Hello World!"。因為nextLine()返回了整個輸入行。
但是,如果我們使用next()方法讀取輸入行,它會返回下一個僅由空格分隔的單詞(單詞的定義是連續的非空白字符序列)。例如:
Scanner scanner = new Scanner(System.in); String word = scanner.next(); System.out.println(word);
如果我們在控制臺輸入"Hello World!"并按下回車鍵,上面的代碼只會輸出"Hello",因為next()只返回了第一個單詞。
需要注意的是,如果我們在多次使用next()方法,它會返回下一個單詞,直到輸入流中沒有更多的單詞可以讀取。因此,next()方法也可以用來循環讀取一行中的所有單詞。例如:
Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { String word = scanner.next(); System.out.println(word); }
上面的代碼將無限循環,每次讀取輸入行中的一個單詞,直到控制臺中沒有更多的輸入。