Java中关于Scanner方法读取数据,大家肯定都不陌生,但其中有些小问题大家可能不知道,今天我在写程序的时候,我就遇到了当中的一些小问题,当时也很懵;
我们在使用scanner的时候,如果你先读取一个数字然后再读取一行带有空格的字符串,大家很多是不是都像下面的这样写?
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
String str = scanner.nextLine();
input.close();
System.out.println("x = " + x);
System.out.println("str = " + str);
}
这么写通常是没问题哈,我们运行也不会报错,我们测试看一下:
测试用例一:
5 abc d
测试用例二:
5
abc d
不多说,很明显了
总结:
我们不管输入什么类型的数据,假如我们第一行输入5,第二行输入abc,那么5后面其实有一个我们看不到,但却实际存在的一个换行符,scanner中的.nextLine()方法,会读取换行符和空格,是以读到换行符结束。说到这里,接下来大家应该已经很明白如何解决对应问题了。