摘自http://wenku.baidu.com/view/fc0db6e9d4d8d15abe234e7d.html 在控制台里输入数据Scanner是最常见的了。但是平时用的时候会提示next()和nextLine() 有时候没注意感觉好像没有差别。后来百度了一下在这里总结一下。 Next(): 一定要读到有效字符后才可以结束输入 ,对于输入有效字符之前的遇到的空格键、tab键和enter键为结束的,next(),都将自动去掉。Next()方法将输入字符之后的空格键 ,tab键enter键视为分割符或者结束符。Next()读取字符串的时候不能读到空格。 NextLine(): 第一种情况: import java.util.Scanner; public class Test { public static void main(String[] args)
{ // TODO Auto-generated
method stub Scanner sc=new Scanner(System.in); String
s1,s2,s3; s1=sc.next(); System.out.println("这是s1输出的结果:"+s1); s2=sc.nextLine(); System.out.println("这是s2输出的结果:"+s2); s3=sc.next(); System.out.println("这是s3输出的结果3:"+s3); } } 输出结果: 第一次向控制台输入//输入 这是s1输出的结果:第一次向控制台输入 这是s2输出的结果: //nextLine()自动读取了被next()去掉的Enter作为他的结束符。 这是第二次向控制台输入//输入 这是s3输出的结果3:这是第二次向控制台输入 只能输入两次。 第二种情况: import java.util.Scanner; public class Test { public static void main(String[] args)
{ // TODO Auto-generated
method stub Scanner sc=new Scanner(System.in); String
s1,s2,s3; s1=sc.nextLine(); System.out.println("这是s1输出的结果:"+s1); s2=sc.nextLine(); System.out.println("这是s2输出的结果:"+s2); s3=sc.nextLine(); System.out.println("这是s3输出的结果3:"+s3); } } 结果: 这是第一次向控制台输入 这是s1输出的结果:这是第一次向控制台输入 这是第二次向控制台输入 这是s2输出的结果:这是第二次向控制台输入 这是第三次控制台输入 这是s3输出的结果3:这是第三次控制台输入 可以输入三次。 在每一个 next()、nextDouble() 、 nextFloat()、nextInt() 等语句之后加一个nextLine()语句,将被next()去掉的Enter结束符过滤掉。 第三种情况: import java.util.Scanner; public class Test { public static void main(String[] args)
{ // TODO Auto-generated
method stub Scanner sc=new Scanner(System.in); String
s1,s2,s3; s1=sc.next(); sc.nextLine(); System.out.println("这是s1输出的结果:"+s1); s2=sc.nextLine(); System.out.println("这是s2输出的结果:"+s2); s3=sc.nextLine(); System.out.println("这是s3输出的结果3:"+s3); } } 结果:(与第一种情况比较就清楚了) 第一次输入 这是s1输出的结果:第一次输入 第二次输入 这是s2输出的结果:第二次输入 第三次输入 这是s3输出的结果3:第三次输入 输入三次 |
|
来自: 昵称26864490 > 《java》