当前位置:文档之家› 关于next()和nextLine()区别

关于next()和nextLine()区别

关于next()和nextLine()区别
关于next()和nextLine()区别

在控制台里输入数据Scanner是最常见的了。但是平时用的时候会提示next()和nextLine()

有时候没注意感觉好像没有差别。后来百度了一下在这里总结一下。Next():

一定要读到有效字符后才可以结束输入,对于输入有效字符之前的遇到的空格键、tab键和enter键为结束的,next(),都将自动去掉。Next()方法将输入字符之后的空格键,tab键enter键视为分割符或者结束符。Next()读取字符串的时候不能读到空格。

NextLine():

结束符号为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();

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:第三次输入

输入三次

相关主题
文本预览
相关文档 最新文档