對於 Scanner類 中 next 和 nextLine 方法的區別
阿新 • • 發佈:2021-01-02
首先,我們要先明白為什麼要採用next與nextLine方法從鍵盤輸入數值呢?其次在分別辨析二者區別。
我們經常接收使用者輸入的值都是有給定具體的型別的,但不妨有那麼一些人就是反著做,導致的結果如下圖:
【程式碼】
import java.util.Scanner;
public class Scanner1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);//input這個是一次定義,到處使用
System.out. println("請使用者輸入一個值:");
int a = input.nextInt();
System.out.println(a);
}
}
執行結果:
看如上結果知,要求輸入整數,而使用者偏偏輸入不是整數的其他型別。為了避免這樣的情況,Scanner包就有next 和 nextLine 方法。
接下來就讓我帶領大家走進二者的區別。
1. 呼叫scanner的next方法:
- 只有檢測到有有效字元輸入時執行回車才有效,否則回車在控制檯只起到換行的作用,不實際錄入資料。
import java.util.Scanner;
public class Scanner1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("請使用者輸入一個值1:");
String a = input.next();
System.out.println(a);
System.out.println("請使用者輸入一個值2:");
String b = input.next();
System.out.println(b);
}
}
執行結果:
- 兩個輸入值時,若錄入字元後 再輸入空格 再錄入一段字元後回車,直接將該字串解析為以空格字元做間隔的兩次錄入資料,並且不錄入空格,直接在控制檯列印兩個字串。
- 一個輸入引數則next()方法碰到空格就會停止錄入。
import java.util.Scanner;
public class Scanner1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("請使用者輸入一個值1:");
String a = input.next();
System.out.println(a);
}
}
執行結果:
(總之,next方法不接收任何空格字元)
2. 呼叫scanner的nextLine方法:
- 若輸入回車直接在控制檯列印空資料,並且它能檢測並列印空格符。
import java.util.Scanner;
public class Scanner1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("請使用者輸入一個值1:");
String a = input.nextLine();
System.out.println(a);
System.out.println("請使用者輸入一個值2:");
String b = input.nextLine();
System.out.println(b);
}
}
執行結果:
總結:
- next() 對於錄入的字串碰到空格就會停止錄入。
- nextLine()會把整行字串全部錄入。