首頁 >Java >Java入門 >java中next()與nextLine()有什麼差別

java中next()與nextLine()有什麼差別

王林
王林轉載
2020-08-21 16:28:094662瀏覽

java中next()與nextLine()有什麼差別

首先我們知道Java中Scanner類別中的方法next()和nextLine()都是用來取得使用者輸入的。

(推薦教學:java入門教學

我們來看看二者的差異:

next()不會取得字元前/後的空格/Tab鍵,只取得字元。開始取得字元(字元前後不算)直到遇到空白/Tab鍵/回車截止取得;nextLine()會取得字元前後的空格/Tab鍵,遇到回車鍵截止。

範例:

import java.util.Scanner;
import java.util.Vector;

public class Main{
    public static void main(String args[]) {
        Scanner reader=new Scanner(System.in);
        String s1=reader.nextLine();
        String s2=reader.next();
        System.out.println(s1);
        System.out.println(s2);
    }
}

運行結果:

java中next()與nextLine()有什麼差別

#可以看到next()只取得了askldfj字符,空格後面的都捨棄了!

將next()和nextLine()換個順序

import java.util.Scanner;
import java.util.Vector;

public class Main{
    public static void main(String args[]) {
        Scanner reader=new Scanner(System.in);
        String s1=reader.next();
    //    String ss=reader.nextLine();
        String s2=reader.nextLine();
        System.out.println(s1);
        System.out.println(s2);
    }
}

(推薦教學:java課程

執行範例:

java中next()與nextLine()有什麼差別

只輸入了aaaa bbbb cccc,系統自動輸出了兩行:

aaaa
 bbbb cccc

因為aaaa後面有個空格,next是不需要的,所以next讀取結束,剩菜剩飯bbbb cccc被nextLine撿了

解決方法是加上上面程式碼注意的nextLine()

import java.util.Scanner;

public class Main {
    
    public static void main(String[] args) {
        Scanner reader=new Scanner(System.in);
        String s1=reader.next();
        String s2=reader.nextLine();
        System.out.println(s1);
        System.out.println(s2);
    }
}

運行結果:

abcdefg abcdefg
      //剩下两行

輸入abcdefg後回車程序已經結束了,然後輸出了abcdefg和兩行換行,原因是因為nextLine吸收了next後的回車。

要十分注意的是,兩個nextLine盡量不要連在一起。而使用next不會出現這種情況,因為next吸取的第一個要求的是字符,最後一個要求是空格、Tab鍵、回車鍵。

以上是java中next()與nextLine()有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除