1. 程式人生 > 其它 >對於 Scanner類 中 next 和 nextLine 方法的區別

對於 Scanner類 中 next 和 nextLine 方法的區別

技術標籤:Java基礎Scanner類java

首先,我們要先明白為什麼要採用next與nextLine方法從鍵盤輸入數值呢?其次在分別辨析二者區別。

我們經常接收使用者輸入的值都是有給定具體的型別的,但不妨有那麼一些人就是反著做,導致的結果如下圖:

【程式碼】

import java.util.Scanner;

public class Scanner1 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);//input這個是一次定義,到處使用
		System.out.
println("請使用者輸入一個值:"); int a = input.nextInt(); System.out.println(a); } }

執行結果:
在這裡插入圖片描述
看如上結果知,要求輸入整數,而使用者偏偏輸入不是整數的其他型別。為了避免這樣的情況,Scanner包就有nextnextLine 方法。

接下來就讓我帶領大家走進二者的區別。

1. 呼叫scanner的next方法:

  • 只有檢測到有有效字元輸入時執行回車才有效,否則回車在控制檯只起到換行的作用,不實際錄入資料。
import java.util.Scanner;

public class
Scanner1 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("請使用者輸入一個值1:"); String a = input.next(); System.out.println(a); System.out.println("請使用者輸入一個值2:"); String b = input.next(); System.out.println(b); }
}

執行結果:
在這裡插入圖片描述

  • 兩個輸入值時,若錄入字元後 再輸入空格 再錄入一段字元後回車,直接將該字串解析為以空格字元做間隔的兩次錄入資料,並且不錄入空格,直接在控制檯列印兩個字串。

在這裡插入圖片描述

  • 一個輸入引數則next()方法碰到空格就會停止錄入。
import java.util.Scanner;

public class Scanner1 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("請使用者輸入一個值1:");
		String a = input.next();
		System.out.println(a);
		
	}
}

執行結果:
在這裡插入圖片描述
(總之,next方法不接收任何空格字元)

2. 呼叫scanner的nextLine方法:

  • 若輸入回車直接在控制檯列印空資料,並且它能檢測並列印空格符。
import java.util.Scanner;

public class Scanner1 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("請使用者輸入一個值1:");
		String a = input.nextLine();
		System.out.println(a);
		
		System.out.println("請使用者輸入一個值2:");
		String b = input.nextLine();
		System.out.println(b);
		
	}
}

執行結果:
在這裡插入圖片描述

總結:

  1. next() 對於錄入的字串碰到空格就會停止錄入。
  2. nextLine()會把整行字串全部錄入。