java Scanner中next和nextLine()區別


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 字符串輸出。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM