java中nextLine()與next()的區別


 

java中的next()和nextLine()還是有很大區別的。

 

next()一定要讀取到有效字符后才可以結束輸入,對輸入有效字符之前遇到的空格鍵、Tab鍵或Enter鍵等結束符,next()方法會自動將其去掉,只有在輸入有效字符之后,next()方法才將其后輸入的空格鍵、Tab鍵或Enter鍵等視為分隔符或結束符。完整標記的前后是與分隔模式匹配的輸入信息所以next()不能得到帶空格的字符串,兒nextLine()是遇到回車是才結束,所以可以得到帶空格的字符串

 

在輸入一個int類型的數字之后,如果后邊采用nextLine的話,最后打印結果發現會少一個字符,原因是在你使用nextInt的時候后邊有一個換行符,沒有接受,前邊的int變量只是接受了你輸入的數值,所以在你繼續輸入nextLine之后,會自動讀取還未讀取的換行,所以會導致后邊的結果有一列為空,所以此時你需要多輸入一個NextLine把未接受的換行符接收到,例如,以下代碼:

package 情書;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Vector;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner cin = new Scanner(System.in);
        int n = cin.nextInt();
        cin.nextLine();
        String a[] = new String[n];
        String s = cin.nextLine();
        
        for(int i=0;i<n;i++) {
            a[i] = cin.nextLine();
        }
        
        
        
        System.out.println(s);
        for(int i=0;i<n;i++) {
            System.out.println(a[i]);
        }
    }

}

運行結果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM