next():一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符,所以next()方法不能得到带空格的字符串;
在以下代码中输入为:abc 123efd &@com
import java.util.Scanner;
public class Practice{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入字符串:");
String sc = input.next();
System.out.println("字符串输出为:" + sc);
}
}
输出为:
请输入字符串:abc 123efd &@com
字符串输出为:abc
nextLine():结束符是Enter键,它返回的是Enter键之前的所有字符,是可以得到带空格的字符串的。
在以下代码中输入为:abc 123efd &@com
import java.util.Scanner;
public class Practice {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入字符串:");
String cc = input.nextLine();
System.out.println("字符串输出为:" + cc);
}
}
输出为:
请字符串:abc 123efd &@com
字符串输出为:abc 123efd &@com
可见nextLine()方法输出了带有空格的字符串,而next()方法遇到空格符就认为字符串输入结束了。