Scanner中的nextInt()与nextLine()方法的区别
import java.util.Scanner;
public class ScannerNext {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入:");
int num1 = sc.nextInt();
System.out.println("num1="+num1);
System.out.println("请再次输入:");
String str = sc.nextLine();
System.out.println("str="+str);
System.out.println("第三次请求输入");
int num2 = sc.nextInt();
System.out.println("num2="+num2);
System.out.println("输出结果为:"+num1+str+num2);
sc.close();
}
}
-
请输入: 12 13 14 num1=12 请再次输入: str= 13 14 第三次请求输入 15 16 17 num2=15 输出结果为:12 13 1415
-
-
上面的代码在运行的时候,只是输入了“ 12 13 14(回车)”,在按回车之后,sc.nextLine()那一行代码就没有让再手动输入,直接运行到第三次请求输入,并且num和str都获取到了值。
-
从值得传递可以看出nextInt()方法的作用是从控制台获取一个整数数字,从第一个不为空的字符开始,到遇到空格或换行结束,但是接收的值不包含空格,只有一个整数,剩下的数据如果不处理就只是在控制台中,如果再有其他处理控制台数据的代码将从空格开始处理,nextLine()方法可以获取整行的字符串,是以换行为结束
-
遇到非数字报错
-
请输入: 12ad Exception in thread "main" java.util.InputMismatchException