輸入字串 "1231\n123\n1.23\nccasda\n12333.353\n",依序呼叫 nextInt()、nextLong()、nextFloat()、nextLine()、nextDouble(),最後拋出 InputMismatchException。
nextFloat() 讀取 1.23 後,**游標停留在換行符前**;隨後 nextLine() 讀取的是**空行**(換行符後到下一行前),回傳空字串;接著 nextDouble() 嘗試解析 "ccasda" 失敗。
nextFloat() 後額外呼叫一次 nextLine() 消耗換行符。nextLine() 讀整行再自行解析(Double.parseDouble 等),避免混用 token 與 line 方法。Scanner s = new Scanner(input);
int a = s.nextInt(); s.nextLine(); // 消耗換行
long b = s.nextLong(); s.nextLine();
float c = s.nextFloat(); s.nextLine();
String d = s.nextLine(); // 讀整行文字
double e = s.nextDouble();