该程序将从用户可能输入的特定点输出其他内容之间的距离。但是,我在设置扫描仪时遇到问题,因为它从另一个文本文件读取输入。这是我的代码:
public class junior
{
public static void main(String[] args)throws IOException
{
double avgMPG;
double pricePer;
double speed;
String letter1;
String letter2;
int start = 0;
int end=0;
int distance;
Scanner inData = new Scanner(new File("input.txt"));
boolean repeat=false;
while (inData.hasNext())
{
letter1.inData.next();
letter2.inData.next();
while (!repeat)
{
System.out.print("1.");
letter1=inData.next();
if(letter1.equals("A"))
{
start=0;
repeat=true;
}
else if (letter1.equals("B"))
{
start=450;
repeat=true;
}
else if (letter1.equals("C"))
{
start=590;
repeat=true;
}
else if (letter1.equals("D"))
{
start=710;
repeat=true;
}
else if(letter1.equals("E"))
{
start=1030;
repeat=true;
}
else if (letter1.equals("F"))
{
start=1280;
repeat=true;
}
else if (letter1.equals("G"))
{
start=1360;
repeat=true;
}
else
{
System.out.println("ERROR: You didn't enter a valid character. Please try again");
repeat=false;
}
}
repeat=false;
while (!repeat)
{
if(letter2.equals("A"))
{
end=0;
repeat=true;
}
else if (letter2.equals("B"))
{
end=450;
repeat=true;
}
else if (letter2.equals("C"))
{
end=590;
repeat=true;
}
else if (letter2.equals("D"))
{
end=710;
repeat=true;
}
else if(letter2.equals("E"))
{
end=1030;
repeat=true;
}
else if (letter2.equals("F"))
{
end=1280;
repeat=true;
}
else if (letter2.equals("G"))
{
end=1360;
repeat=true;
}
else
{
System.out.println("ERROR: You didn't enter a valid character. Please try again");
repeat=false;
}
distance=end-start;
System.out.print("Total distance: "+distance);
}
}
}
}
声明“inData.next”的部分会一直发送错误,说明该字段不存在或无法解析。如何修复此问题以正确读取我的测试文件?
答案 0 :(得分:1)
看起来好像在这里
letter1.inData.next();
letter2.inData.next();
您尝试从扫描仪中读取并将结果放入String
变量中。但要做到这一点,你想要
letter1 = inData.next();
letter2 = inData.next();
编译器正在抱怨,因为您正试图访问名为String
的{{1}}变量的字段(inData
表示的意思),但是没有这样的领域。