Java 构建时工作正常,运行时输出错误
我经常遇到的运行时错误是 线程“main”java.util.InputMismatchException中的异常 位于java.util.Scanner.throwFor(Scanner.java:840) 下一步(Scanner.java:1461) 位于java.util.Scanner.nextInt(Scanner.java:2091) 位于java.util.Scanner.nextInt(Scanner.java:2050) 在lab4b2.main(lab4b2.java:12) 我的代码是Java 构建时工作正常,运行时输出错误,java,Java,我经常遇到的运行时错误是 线程“main”java.util.InputMismatchException中的异常 位于java.util.Scanner.throwFor(Scanner.java:840) 下一步(Scanner.java:1461) 位于java.util.Scanner.nextInt(Scanner.java:2091) 位于java.util.Scanner.nextInt(Scanner.java:2050) 在lab4b2.main(lab4b2.java:12)
import java.util.*;
import java.io.*;
public class lab4b2
{
public static void main (String [] args)
throws IOException
{
Scanner fileIN = new Scanner(new File("lab4b2.txt"));
char unit;
double amount,conv;
unit = fileIN.next().charAt(0);
amount = fileIN.nextInt();
switch (unit)
{
case 'p': conv = amount*4.9;
System.out.printf("%.2f pounds = %.2f newtons",amount,conv);
break;
case 'P': conv = amount*4.9;
System.out.printf("%f pounds = %f newtons",amount,conv);
break;
case 'f': conv = amount*0.30488;
System.out.printf("%f feet = %f meters",amount,conv);
break;
case 'F': conv = amount*0.30488;
System.out.printf("%f feet = %f meters",amount,conv);
break;
case 'm': conv = amount*1.61;
System.out.printf("%f miles = %f kilometers",amount,conv);
break;
case 'M': conv = amount*1.61;
System.out.printf("%f miles = %f kilometers",amount,conv);
break;
default: System.out.println("Please enter the possible units only.");
break;
}
}
}
有什么问题?
这仅在我单击“运行”后发生。如果有帮助的话,我正在使用JCreator。
我相信这个问题在printf的某个地方,但我没有看到任何合理的答案。
我的文件输入是
M 3.106
第125页
F120
第7.2页
F56
M 100此行出现错误:
amount = fileIN.nextInt();
文件中的第一个数字不是
int
,因此它会导致输入不匹配异常。提供更多关于你想要获得更好答案的信息。这听起来像是某人的家庭作业或学校项目。也就是说,你的问题在第12行。您正在扫描整数,但数据文件中有3.106,这不是整数。我认为错误在这里:
amount=fileIN.nextInt()
您读取的第一个数字是3.106,它不是整数。您可能需要进行以下更改:
float amount, conv;
amount = fileIN.nextFloat();
Java中的错误输出非常有助于引导您解决问题。这:
java.util.Scanner.nextInt(Scanner.java:2050) at lab4b2.main(lab4b2.java:12)
表示错误发生在文件lab4b.java的第12行。lab4b2.txt中有什么内容?感谢您帮助我理解底部的混乱内容!非常感谢。您的家庭作业或学校项目假设正确。谢谢!我应该注意到这样的事情