我想在一行中输入“ 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);
答案 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()
。)