java - 从文件中读取 boolean 变量

标签 java file boolean

我当前正在开发的程序应该使用从文件读取的输入来创建一系列三角形。文件中的信息是double类型的3面、String类型的color、boolean类型的filled。正是这个 boolean 变量给我带来了一些问题。

在文件中,信息的布局如下:

1.0 1.5 1.0 yellow  T
3.0 4.0 5.0 blue F

其中 T 代表 True(是的,该对象已填充),F 代表 false(否,该对象未填充),但我在让计算机识别这一点时遇到了一些麻烦。现在我正在使用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 为 true,F 为 false?

这个特定程序有更多的代码,但由于这是我目前出现问题的地方,我认为只发布这部分代码会更简单。如果拥有完整代码有帮助,请告诉我,我可以添加它。

最佳答案

问题:

fin.nextBoolean();

它只接受字符串“true”作为 true,“false”作为 false,从而给你 InputMismatchException

解决方案:

将文件中的 T 更改为“true”,将 T 更改为“false”

boolean读取为string并使用equals方法检查它是真还是假

 String bool = fin.next();
 boolean filled;
 if(bool.equals("T"))
      filled = true;
 else
      filled = false;

关于java - 从文件中读取 boolean 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25026601/

相关文章:

java - File.renameTo() 没有任何效果

c - 即使字符串以 null 结尾,程序也会输出奇怪的字符

python - Pandas 中 boolean 索引的逻辑运算符

java - TableModel 在其他复选框中第二次单击后更改 jcheckbox 单元格的值

java - 看似随机的 SAX 输出错误

java - ExecutorService 中如何限制线程?

java - 我在运行 java 线程时遇到问题,它只能运行一次

java - 使用 gson 错误转换 json 预期为 BEGIN_OBJECT 但在第 1 行第 2 列路径 $ 处为 BEGIN_ARRAY

python - 在 Python 中,如何检查文件是否存在以子字符串开头或结尾?

ios - 在 NSLog 中,方法返回一个颠倒的问号