next(),nextLine(),nextInt的区别
next()
next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。
读取完之后会把缓冲区中的“\r”删除掉。
nextInt()
nextInt()方法在扫描到空白符的时候会将前面的数据读取走,但会丢下空白符“\r”在缓冲区中,但是,nextLine()方法在扫描的时候会将扫描到的空白符一同清理掉。
nextLine()
nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符。读取完之后会把缓冲区中的“\r”删除掉。
System.out.println("请输入第一个字符串"); String str1 = sc.next(); System.out.println("请输入第二个字符串"); String str2 = sc.next(); System.out.println(str1); System.out.println(str2); System.out.println(str1+str2);
str2会被跳过输入,得到“r”
System.out.println("请输入第三个字符串"); String str3 = sc.nextLine(); System.out.println("请输入第四个字符串"); String str4 = sc.nextLine(); System.out.println(str3); System.out.println(str4); System.out.println(str3+str4);
next Line()会读取“\r”回车键之前的所有数据,包括空格键。并最后把“\r”从缓冲区中删除。
System.out.println("请输入第三个整数"); int str3 = sc.nextInt(); System.out.println("请输入第四个字符串"); String str4 = sc.nextLine(); System.out.println("请输入第五个字符串"); String str5 = sc.next(); System.out.println(str3); System.out.println(str4); System.out.println(str5); System.out.println(str3+str4+str5);
nextInt()读取整数后,会在缓冲区留下“\r”,str4中无数据,str5为qwe(提示键入值)