next():
- 1、一定要讀取到有效字符后才可以結束輸入。
- 2、對輸入有效字符之前遇到的空白,next() 方法會自動將其去掉。
- 3、只有輸入有效字符后才將其后面輸入的空白作為分隔符或者結束符。
- next() 不能得到帶有空格的字符串。
nextLine():
- 1、以Enter為結束符,也就是說 nextLine()方法返回的是輸入回車之前的所有字符。
- 2、可以獲得空白。
如果要輸入 int 或 float 類型的數據,在 Scanner 類中也有支持,但是在輸入之前最好先使用 hasNextXxx() 方法進行驗證,再使用 nextXxx() 來讀
實例:
ScannerDemo.java 文件代碼:
import java.util.Scanner;
public class ScannerDemo { public static void main(String[] args)
{ Scanner scan = new Scanner(System.in);
// 從鍵盤接收數據 // next方式接收字符串
System.out.println("next方式接收:");
// 判斷是否還有輸入
if (scan.hasNext())
{ String str1 = scan.next();
System.out.println("輸入的數據為:" + str1); }
scan.close(); } }
執行以上程序輸出結果為:
$ javac ScannerDemo.java $ java ScannerDemo next方式接收: runoob com 輸入的數據為:runoob
可以看到 com 字符串並未輸出,接下來我們看 nextLine。
使用 nextLine 方法:
ScannerDemo.java 文件代碼:
import java.util.Scanner;
public class ScannerDemo { public static void main(String[] args)
{ Scanner scan = new Scanner(System.in); // 從鍵盤接收數據 // nextLine方式接收字符串
System.out.println("nextLine方式接收:"); // 判斷是否還有輸入
if (scan.hasNextLine())
{ String str2 = scan.nextLine();
System.out.println("輸入的數據為:" + str2); }
scan.close(); } }
執行以上程序輸出結果為:
$ javac ScannerDemo.java $ java ScannerDemo nextLine方式接收: runoob com 輸入的數據為:runoob com
可以看到 com 字符串輸出。