输入 String 和 Double 值时发生 InputMismatchException

InputMismatchException occurred when inputing String and Double values

提问人:Tina 提问时间:9/22/2021 更新时间:9/22/2021 访问量:27

问:

这是我一直在努力解决的问题:

我希望输入采用以下形式:1

所以我是这样写的代码。不幸的是,它要么在第 6 行给我一个 InputMismatchException,要么在“END_PRICES”处无法中断。

        Scanner input =new Scanner(System.in);
        ArrayList<String> fruitName = new ArrayList<>();
        ArrayList<Double> fruitPrice = new ArrayList<>();
        while(true) {
            String str=input.next();
            Double v=input.nextDouble();
            if(str.equals("END_PRICES")) break;
            fruitName.add(str);
            fruitPrice.add(v);
            input.nextLine();
        }

有人知道如何解决这个问题吗?提前致谢!

爪哇岛 输入 java.util.scanner InputMismatchException

评论

0赞 Andy Turner 9/22/2021
交换和线?Doubleif

答:

0赞 Harshita 9/22/2021 #1

可以更改 while 循环中的条件,首先检查是否有 nextLine,然后找到该行的内容,如下所示:

while (sc.hasNextLine()){
            String s = sc.nextLine();
            if (s.trim().equalsIgnoreCase("END_PRICES")){
                break;
            }
            String[] values = s.split(" ");
            double price = Double.parseDouble(values[1]);
            fruitName.add(values[0]);
            fruitPrice.add(price);
        }