Scanner获取数据时出现的并发修改异常问题的三种解决办法- 当使用Scanner对象调用nextInt()方法的时候,下一个再调用nextLine()方法获取数据时候会出现第二个数据获取不到的问题
- Scanner sc = new Scanner(System.in);
- System.out.println("请输入第一个数:");
- int x = sc.nextInt();
- System.out.println("请输入第二个数:");
- String line = sc.nextLine();
原因:因为在我们敲回车键的时候,在键盘相当于录入 \r\n,而这个\r\n不会被 nextInt方法会接收,但是nextLine方法会以这个\r\n作为结束标记,所以第二个数获取不到.
解决方法
- 解决方案一:创建两次键盘录入对象
- 解决方案二:以后再使用的过程中都用nextLine方法获取数据,然后再通过转换的方法将整数字符串转换成为int类型
- 解决方案三:调用多一次nextLine()方法
案例: ```java package com.heima.scanner; 解决方案:调用多一次nextLine()方法 import java.util.Scanner; public class Test3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入第一个数:"); int x = sc.nextInt(); // \r\n //再次使用nextLine方法,让这个nextLine方法接收到\r\n就可以 sc.nextLine(); System.out.println("请输入第二个数:"); String line = sc.nextLine(); System.out.println("第一个数是:"+ x); System.out.println("第二个数是:"+ line);} |