我正在使用FXML来创建用户界面 . 有一个TextField可以填写,一个Button可以点击 .
单击按钮时,应读取已填写的文本并将其与List进行比较 .
如果TextField包含的字符数等于List中的值,则应在同一用户界面的“文本”字段中显示某个字符串 .
public class FXMLController {
@FXML TextField input
@FXML private Text actionContains
@FXML protected void handleSubmitButtonAction(ActionEvent event) {
List<String> n1 = Arrays.asList("44606", "44613", "44615", "44619"}
String getInput = input.getText();
if(Arrays.asList(n1).contains(getInput)) {
actionContains.setText("CONTAINS");
} else {
actionContains.setText("DOES NOT CONTAIN");
}
}
}
它's not a problem to run the code. The String getInput'的值等于输入文本,但if语句的结果始终是"DOES NOT CONTAIN" . 输入的文本例如是“ 44606 621” .
我已经切断了最后三个字符,以便得到一个与List值相等或不相等的String(所以等于而不是包含),但这对结果没有任何作用 .
4 回答
您应该在数组的每个元素中查找字符串,而不是在数组中查找它 .
所以用这个替换你的代码
那是因为你把它放到arrayList中两次,所以而不是arrayList它变成了List的arrayList .
更改if条件
至
我改变了我的代码:
更改输入以匹配List值的字符数会产生一个有效的if语句 .
您必须遍历列表并搜索该单词是否包含列表中的任何元素,而不是其他方式 . 正确的算法是