在Java中,如果输入int类型和字符串处理不当会产生错误,例如:如果先输入int类型,在输入字符串类型,如下代码:
Scanner sc=new Scanner(System.in); int a=sc.nextInt(); String b=sc.nextLine(); System.out.println(a); System.out.println(b);
在系统输入一个int类型数据就会停止,并且只会输出那个int类型数据。如果先输入字符串类型在输入int类型则不会报错。在实际运行中,如果交替输入int 类型和 String类型有一下几种解决方式:
1:都采用字符串输入,例如:
String a=sc.nextLine(); int a2=Integer.parseInt(a);//转换为int类型 String b=sc.nextLine();
2:再输入int后接String类型之间加上sc.nextLine();这也是我采用的方法;这是偶然看别人写代码看到就学习了。
int a=sc.nextInt(); sc.nextLine();//一定要是sc.nextLine();才行 String b=sc.nextLine(); System.out.println(a); System.out.println(b);
3:再Scanner一个对象
Scanner sc=new Scanner(System.in); Scanner sb=new Scanner(System.in); while(sc.hasNext()) { int a=sc.nextInt(); String b=sb.nextLine(); System.out.println(a); System.out.println(b); }
至于会出现这样的原因,百度上说是由于java虚拟式识别的问题。