首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java Scanner 類完整教學:輸入處理、next 與 nextLine 差異解析

     編輯:Java 程式設計入門

Java Scanner 類完整教學:輸入處理、next 與 nextLine 差異解析

java.util.Scanner 是 Java 5 引入的新特性,提供簡單易用的方式從標準輸入(鍵盤)、檔案或字串獲取使用者輸入。

建立 Scanner 物件

Scanner scanner = new Scanner(System.in); // 從鍵盤讀取

字串輸入:next() vs nextLine() 關鍵差異

next() 方法

  • 以空白字元(空格、Tab、換行)作為分隔符。
  • 自動跳過開頭的空白字元,讀取有效字元直到遇到下一個空白。
  • 無法讀取包含空格的字串。
System.out.println("next方式接收:");
if (scan.hasNext()) {
    String str1 = scan.next();
    System.out.println("輸入的資料為:" + str1);
}
// 輸入:runoob com
// 輸出:輸入的資料為:runoob  (com 被忽略)

nextLine() 方法

  • 以換行符 (Enter) 作為結束標記。
  • 返回輸入回車前的所有字元,包含空格。
  • 可讀取整行文字。
System.out.println("nextLine方式接收:");
if (scan.hasNextLine()) {
    String str2 = scan.nextLine();
    System.out.println("輸入的資料為:" + str2);
}
// 輸入:runoob com
// 輸出:輸入的資料為:runoob com

核心差異總結表

特性next()nextLine()
結束符空白字元換行符 (Enter)
空白處理跳過前導空白,遇空白停止保留所有空白
可讀含空格字串否是

基本型別輸入驗證與讀取

Scanner 提供 hasNextXxx() 驗證與 nextXxx() 讀取成對方法,確保型別安全:

Scanner scan = new Scanner(System.in);
int i = 0; float f = 0.0f;

System.out.print("輸入整數:");
if (scan.hasNextInt()) {
    i = scan.nextInt();
    System.out.println("整數資料:" + i);
} else {
    System.out.println("輸入的不是整數!");
}

System.out.print("輸入小數:");
if (scan.hasNextFloat()) {
    f = scan.nextFloat();
    System.out.println("小數資料:" + f);
} else {
    System.out.println("輸入的不是小數!");
}

進階應用:連續輸入數字計算總和與平均

利用 hasNextDouble() 迴圈讀取,遇非數字結束:

Scanner scan = new Scanner(System.in);
double sum = 0;
int count = 0;
while (scan.hasNextDouble()) {
    double x = scan.nextDouble();
    count++;
    sum += x;
}
System.out.println(count + "個數的和為" + sum);
System.out.println(count + "個數的平均值是" + (sum / count));
// 輸入:12 23 15 21.4 end
// 輸出:4個數的和為71.4,平均值17.85

常用方法速查表

方法說明
hasNext()判斷是否還有下一個 token(預設以空白分隔)
hasNextLine()判斷是否還有下一行
next()讀取下一個 token
nextLine()讀取下一行
hasNextInt() / nextInt()驗證/讀取整數
hasNextDouble() / nextDouble()驗證/讀取浮點數
hasNextBoolean() / nextBoolean()驗證/讀取布林值
close()關閉 Scanner,釋放資源

提醒: 使用 Scanner 讀取基本型別後若需接著讀取整行字串,需額外呼叫一次 nextLine() 消耗殘留的換行符,否則會直接讀到空行。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved