思考,输入1 2 3 4 5加上enter,输出什么
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[][] m = new int[2][2];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
m[i][j] = sc.nextInt();
System.out.println(m[i][j]);
}
}
String d = sc.nextLine();
System.out.println(d);
}
}
答案
其中字符串d是“ 5”,有一个空格
我的猜想是前面1,2,3,4解析完成后确实剩下“ 5”
于是全部给了d
next方法和nextLine方法不同
next()
读取一个单词,即从输入流中读取第一个空白符之前的字符,空白符可以是空格、Tab、回车等。
遇到空白符会停止,且不会读取该空白符。
在读取过程中,如果输入中包含多个单词,它只会读取第一个单词,后面的内容会留在输入流中供后续方法使用。
nextLine()
读取整行字符串,即从当前光标位置读取到回车符之前的所有字符。
读取到换行符结束,并将该行的数据(包括空格)完整返回。
用于读取包含空格的整行文本,比如用户输入一句话时,它会将整句话读取出来。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[][] m = new int[2][2];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
m[i][j] = sc.nextInt();
System.out.println(m[i][j]);
}
}
String d = sc.next();
System.out.println(d);
}
}