控制台輸入:2008 1(年份 月份,空格分隔),需分別存入 `year`、`month`。
Scanner sc = new Scanner(System.in);
int year = sc.nextInt(); // 讀 2008
int month = sc.nextInt(); // 讀 1
// 自動跳過空白字符(空格、換行、Tab)
String line = sc.nextLine(); // 讀整行 "2008 1"
String[] parts = line.trim().split("\\s+"); // 正則分割,兼容多空格
int year = Integer.parseInt(parts[0]);
int month = Integer.parseInt(parts[1]);
| 維度 | nextInt() 連續 | nextLine() + split |
|---|---|---|
| 代碼量 | 極少 | 稍多 |
| 容錯性 | 輸入非數字拋異常 | 可先檢查 parts.length 再解析 |
| 適用場景 | 固定順序、純數字輸入 | 混合類型、需驗證格式、讀取整行文本 |
C 语言 `scanf("%d %d", &y, &m)` 的功能,Java 需靠上述兩種方式組合實現。