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

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

王林
發布: 2020-08-21 16:28:09
轉載
4631 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板