我目前正在進行問答遊戲。在以下public void Run()
中,我想驗證用戶輸入String answer
的正確答案: answersList.forEach(new String
。如何比較ArrayList中的元素與特定的字符串?
我試圖用boolean
來做到這一點。但我收到此錯誤信息:「無法解析構造‘字符串(布爾)’我該怎麼來解決這個問題
私人揮發性布爾的初始化:?
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");
}
}
}
}
哪些字符串是你想比較? – BillThePlatypus
問題是,您將「equals(answer)」的結果作爲布爾值傳遞給String的構造函數,因此不存在需要布爾值的String構造函數,即使您要刪除「equals ()「你仍然會得到一個錯誤,因爲forEach方法接受一個消費者。請指定所需的所有代碼以及您想要的最終結果。 –
只需使用List.contains(答案)。 –