我想在一行中将输入作为“ Iphone 6s”,“ iphone”,“ 35000.0”,但是我遇到了java.util.InputMismatchException

时间:2019-10-12 17:55:56

标签: java

我想在一行中输入“ Iphone 6s”,“ iphone”,“ 35000.0”,但是我遇到了java.util.InputMismatchException。在下面的代码中,第三行将String,String,double类型的值传递给方法时出现错误。

            System.out.println("Enter modelname,companyname and price");
            Mobile[] mb1 = new Mobile[1];
            mb1[0] = new Mobile(sc.nextLine(),sc.nextLine(),sc.nextDouble());
            test.add1(mb1);

2 个答案:

答案 0 :(得分:0)

您的输入(来自java.util.Scanner)使用2个字符串,然后是浮点数。

您的java.util.InputMismatchException表明您的Scanner.nextFloat()呼叫正在收集意外的输入,该输入不是数字或不符合输入所需的条件。

例如,Scanner.nextFloat()将导致以下输入错误:

foo
basically any character that's not from 0-9 (except for periods, which serve as decimal places)
10..
10.0.
..1
1_000

但是没关系。

10.
.1
1000
10.1
1942285930580465743673490674390867430698903609346397643069436990

答案 1 :(得分:-1)

nextLine()一次完成整个输入行。我相信您想要使用的是next(),它只使用下一个单词。 (对于浮点数,您可以继续使用nextFloat()。)