我目前正在处理的程序应该使用从文件读入的输入来创建一系列三角形。文件中的信息是double类型的3个边,String类型的颜色,以及boolean类型的填充。这个布尔变量给了我一些问题。
在文件中,信息的布局如下:
1.0 1.5 1.0 yellow T
3.0 4.0 5.0 blue F
其中T代表True(是对象被填充)而F代表假(没有对象没有被填充),但我在让计算机识别这个时遇到一些麻烦。现在我正在使用while循环遍历代码并将每个值分配给相应的变量,如下所示:
while (fin.hasNext()) {
double side1 = fin.nextDouble();
double side2 = fin.nextDouble();
double side3 = fin.nextDouble();
String color = fin.next();
boolean filled = fin.nextBoolean();
Triangle triangle = new Triangle(side1, side2, side3, color, filled);
System.out.println(triangle);
}
fin.close();
但是在编写本文时,我在第14行遇到了一个InputMismatchException错误:
boolean filled = fin.nextBoolean();
如何以一种让程序知道T为真且F为假的方式编写填充变量?
这个特定程序有更多的代码,但由于这是我目前发生问题的地方,我认为发布这部分代码会更简单。如果它有助于获得整个代码,请告诉我,我可以添加它。
答案 0 :(得分:3)
<强>问题:强>
fin.nextBoolean();
它只接受字符串&#34; true&#34;为真,&#34;假&#34;为假,从而给你InputMismatchException
<强>溶液强>
将T的文件更改为&#34; true&#34;和T到&#34;假&#34;
<强> 或 强>
将boolean
作为string
阅读并使用equals
方法检查其是真还是假
String bool = fin.next();
boolean filled;
if(bool.equals("T"))
filled = true;
else
filled = false;