1. 程式人生 > >JAVA scanner類中next()方法與nextline()方法的區別

JAVA scanner類中next()方法與nextline()方法的區別

在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() 與 nextLine() 區別
next():
1. 一定要讀取到有效字元後才可以結束輸入。
2. 對輸入有效字元之前遇到的空白,next() 方法會自動將其去掉。
3. 只有輸入有效字元後才將其後面輸入的空白作為分隔符或者結束符。
next() 不能得到帶有空格的字串。
nextLine():
1. 以Enter為結束符,也就是說 nextLine()方法返回的是輸入回車之前的所有字元。
2. 可以獲得空白。

ps

在編譯scannerDemo.java時我加入了 -encoding UTF-8 ,是由於我用的時notepad++編輯器。遇到了如下錯誤:
使用notepad++編譯器時 錯誤:編碼gbk的不可對映字串
解決辦法已經在該部落格中寫出。