import java.util.Scanner;
public class b1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
System.out.println(n);
System.out.println("str1:"+scan.nextLine());
System.out.println("str2:"+scan.nextLine());
}
}
输入
5
1 2 3 4 5
输出
5
str1:
str2:1 2 3 4 5
一般会认为在第一个nextLine()时,即可取到1 2 3 4 5 ,但是取到的却是空;
原因: nextLine()会把next(),nextInt(),nextDouble(),nextFloat()的结束换行符作为字符串读入
参考:https://blog.youkuaiyun.com/gg543012991/article/details/52900592
本文深入探讨了Java中Scanner类的使用细节,特别是next()和nextLine()方法的区别。通过一个具体的示例,解释了为什么在调用nextLine()之前调用nextInt()或next()等方法会导致首次读取字符串为空的原因,即nextLine()会读取next()方法遗留的换行符。
2063

被折叠的 条评论
为什么被折叠?



