【发布时间】:2017-04-07 19:54:03
【问题描述】:
我目前正在开发一个问答游戏。在下面的public void Run() 中,我想用正确的答案验证用户输入String answer:
answersList.forEach(new String.
我正在尝试使用boolean 来执行此操作。但我收到此错误消息:“无法解析构造函数'String(boolean)'。我该如何解决这个问题?
私有 volatile 布尔值的初始化:
class Broadcaster extends Thread {
private volatile boolean check_point = true;
public boolean getFlag() {
System.out.println("getFlag is running");
return this.check_point;
}
在 BufferedReader、PrintStrem 等之后...
public void run() {
while (true) {
try {
List<String> answersList = new ArrayList<>();
try (Stream<String> answersStream = Files.lines(Paths.get(answersFile))) {
answersList = answersStream
.map(String::toLowerCase)
.collect(Collectors.toList());
} catch (IOException a) {
a.printStackTrace();
System.out.println("The timer isn't working correctly");
}
if (answersList.forEach(new String(equals(answer)))) { //ERROR MESSAGE
write.println("Right Answer");
points++;
check_point = true;
} else {
write.println("Wrong Answer");
check_point = false;
}
} catch (Exception e) {
System.out.println("Some problem with the validation");
}
}
}
}
【问题讨论】:
-
您要比较哪些字符串?
-
问题是您将“equals(answer)”的结果传递给 String 的构造函数,它是一个布尔值,因此没有采用布尔值的 String 构造函数,即使你要删除“equals()”你仍然会得到一个错误,因为 forEach 方法接受一个消费者。请指定所需的所有代码以及您想要的最终结果。
-
只使用 List.contains(answer)。
-
@JosefLundström 看到我的答案。
标签: java arraylist string-comparison