java中sc.next()和sc.nextLine()的区别
sc.next()
该方法以空格或者回车换行作为结束
System.out.println("请输入你的姓名和年龄:");
Scanner sc=new Scanner(System.in);
String name = sc.next();
int age=sc.nextInt();
System.out.println("name:"+name+","+"age:"+age);
操作结果:
请输入你的姓名和年龄:
tom 6
name:tom,age:6
sc.nextLine()
该方法用于读取整行,包括行尾的换行符。在读取之后,会将光标移动到下一行。
System.out.println("请输入你的兴趣爱好");
Scanner sc=new Scanner(System.in);
String hobby = sc.nextLine();
System.out.println("我的兴趣爱好是:"+hobby);
操作结果:
请输入你的兴趣爱好:
打篮球 踢足球
我的兴趣爱好是:打篮球 踢足球
sc.next()与sc.nextLine()的对比
我们先来看sc.nextLine():
System.out.println("请输入你的身高和体重");
Scanner sc=new Scanner(System.in);
String a = sc.nextLine();
System.out.println(a);
输出结果
请输入你的身高和体重:
165 95
我的身高和体重为:165 95
再看sc.next():
System.out.println("请输入你的身高和体重");
Scanner sc=new Scanner(System.in);
String a = sc.next();
System.out.println("我的身高和体重为:"+a);
输出结果
请输入你的身高和体重:
165 95
我的身高和体重为:165
可见,当使用sc.next()时,返回了“165”,此时光标会停留在“95”之前。这是因为该方法以空格或者回车换行作为结束。