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

Java 基礎培訓(九):控制台輸入處理與 Scanner 實戰

     編輯:Java 相關知識

控制台交互是 Java 入門必備技能。Scanner 類提供了強大的輸入解析能力,支持基本類型、字符串、正則表達式等多種輸入模式。本文詳細講解最佳實踐與異常處理。

Scanner 基礎用法

import java.util.Scanner;

public class Lession9 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        
        // 字符串輸入(按空格分隔)
        System.out.print("請輸入你的姓名: ");
        String name = scan.next();
        System.out.println("您的姓名為: " + name);
        
        // 整數輸入
        System.out.print("請輸入你的年齡: ");
        int age = scan.nextInt();
        System.out.println("您的年齡為: " + age);
        
        // 浮點數輸入
        System.out.print("請輸入你的身高(米): ");
        float height = scan.nextFloat();
        System.out.println("您的身高為: " + height + "米");
    }
}

常用輸入方法對照表

方法功能分隔符
next()讀取下一個 token(默認空格分隔)空白字符
nextLine()讀取整行(含空格)換行符
nextInt()解析 int空白字符
nextLong()解析 long空白字符
nextFloat()解析 float空白字符
nextDouble()解析 double空白字符
nextBigInteger()解析大整數空白字符
nextBigDecimal()解析高精度小數空白字符

異常處理最佳實踐

int age = Integer.MIN_VALUE;
while (age == Integer.MIN_VALUE) {
    System.out.print("請輸入你的年齡: ");
    try {
        age = scan.nextInt();
    } catch (InputMismatchException ex) {
        System.out.println("請輸入合法的整數");
        scan.nextLine(); // 清理緩衝區無效輸入
    }
}
System.out.println("您的年齡為: " + age);

進階測試建議

  1. 測試超長整數輸入(超過 int 范圍),觀察異常
  2. 改用 nextLong() 處理長整數
  3. 輸入非數字字符觸發 InputMismatchException
  4. 使用 nextBigInteger/nextBigDecimal 處理超大數值
  5. 測試 next() 與 nextLine() 混用時的換行符問題

替代方案對比

方案優點缺點
Scanner功能豐富、類型安全、正則支持性能一般、需處理異常
BufferedReader高性能、簡單穩定需手動解析類型、無正則支持
Console支持密碼隱藏輸入IDE 中可能為 null、功能有限

關鍵提示

  • nextInt() 等不消耗換行符,後續 nextLine() 會讀到空行
  • 異常捕獲後必須調用 nextLine() 清理緩衝區
  • 生產環境建議封裝通用輸入工具類
  • 關閉 Scanner 會關閉 System.in,避免重複使用
異常處理演示
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved