1. 程式人生 > 其它 >nextLine()和next()的區別和使用方法

nextLine()和next()的區別和使用方法

技術標籤:java字串

nextLine()和next()的區別和使用方法

關於next()和nextLine()是有一定的區別的。

一、next()

next()一定要讀取到有效字元後才可以結束輸入,對輸入有效字元之前遇到的空格鍵、Tab鍵或Enter鍵等結束符,next()方法會自動將其去掉,只有在輸入有效字元之後,next()方法才將其後輸入的空格鍵、Tab鍵或Enter鍵等視為分隔符或結束符。比如,在控制檯輸入“ gjm gjm ”時,一次next()讀入進來的僅僅是"gjm"。它不能得到帶空格的字串的!

二、nextLine()

nextLine()方法的結束符只是Enter鍵,即nextLine()方法返回的是Enter鍵之前的所有字元。比如,在控制檯輸入“ gjm gjm ”時,一次nextLine()讀入進來的結果是" gjm gjm "。它是可以得到帶空格的字串的!

三、舉一個簡單的例子


```java
 import java.util.Scanner;

public class NextTest {
     public static void main(String[] args) {
         test1();
         //test2();
    }
 
     public static void test1() {
        String s1,s2;
        Scanner sc=new Scanner(System.in);
        System.out.print("請輸入第一個字串:"
); s1=sc.nextLine(); System.out.print("請輸入第二個字串:"); s2=sc.next(); System.out.println("輸入的字串是:"+s1+" "+s2); } public static void test2() { String s1,s2; Scanner sc=new Scanner(System.in); System.out.print
("請輸入第一個字串:"); s1=sc.next(); System.out.print("請輸入第二個字串:"); s2=sc.nextLine(); //s2=sc.nextLine(); System.out.println("輸入的字串是:"+s1+" "+s2); } }

結果:
① 當執行test1();時,結果如下示:
在這裡插入圖片描述
② 當執行test2();時,結果如下示:

在這裡插入圖片描述
即在我剛輸入完home後,按下回車,直接彈出結果,程式執行完畢【內心呼嘯,tmd我第二個字串還沒輸入呢就給勞資返回結果了】。

通過分析發現:是next()讀不到回車的,而是將回車作為分隔符,並且留給了nextLine(),nextLine()毫不客氣,直接讀入,然後結束。

故想要輸出和test1()一樣的結果,需要將test2()中nextLine()後再加一個nextLine(),第一個用來讀next()留下的回車分隔符,第二個用來讀work。故如上所示,將註釋的程式加入,然後執行,就會發現結果和test1()一樣。