JAVA scanner類中next()方法與nextline()方法的區別
阿新 • • 發佈:2019-02-18
在scanner類中有next()和nextline()方法,這兩種方法有什麼區別呢?今天寫了段程式碼測試了下。
程式碼部分
import java.util.Scanner;
public class scannerDemo{
public static void main(String[] args) {
nextTest();
System.out.println("\n");
nextLineTest();
}
public static void nextTest(){
//從鍵盤接受資料
Scanner scan = new Scanner(System.in);
//next方式接收字串
System.out.println("next方式接受:");
//判斷是否還有輸入
if(scan.hasNext()){
String str1 = scan.next();
System.out.println("輸入的資料為:"+str1);
}
}
public static void nextLineTest(){
//從鍵盤接收資料
Scanner scan = new Scanner(System.in);
//nextLine方式接收字串
System.out.println("nextLine方式接受:");
//判斷是否還有輸入
if(scan.hasNextLine()){
String str2 = scan.nextLine();
System.out.println("輸入的資料為:"+str2);
}
}
}
執行結果
總結
next() 與 nextLine() 區別
next():
1. 一定要讀取到有效字元後才可以結束輸入。
2. 對輸入有效字元之前遇到的空白,next() 方法會自動將其去掉。
3. 只有輸入有效字元後才將其後面輸入的空白作為分隔符或者結束符。
next() 不能得到帶有空格的字串。
nextLine():
1. 以Enter為結束符,也就是說 nextLine()方法返回的是輸入回車之前的所有字元。
2. 可以獲得空白。
ps
在編譯scannerDemo.java時我加入了 -encoding UTF-8 ,是由於我用的時notepad++編輯器。遇到了如下錯誤:
使用notepad++編譯器時 錯誤:編碼gbk的不可對映字串
解決辦法已經在該部落格中寫出。