java - 使用 if 语句比较 String 和 Arrays.asList 值

标签 java arrays if-statement fxml

我正在使用 FXML 创建用户界面。 有一个可以填写的 TextField 和一个可以单击的 Button。

单击按钮时,应读取已填写的文本并将其与列表进行比较。

如果文本字段包含等于列表中的值的字符,则应在同一用户界面上的文本字段中显示某个字符串。

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");
             }
     }
}

运行代码没有问题。 String getInput 的值等于输入文本,但 if 语句的结果始终为“DOES NOT CONTAIN”。 例如,输入的文本为“44606621”。

我已经截断了最后三个字符,以便得到一个等于或不等于列表值的字符串(因此等于而不是包含),但这对结果没有任何影响。

最佳答案

这是因为你将它放入 arrayList 两次,所以它不是 arrayList,而是 List 的 arrayList。

List<String> n1 = Arrays.asList("44606", "44613", "44615", "44619"}


Arrays.asList(n1); <--- makes it into [["44606", "44613", "44615", "44619"]]

更改if条件

 if(Arrays.asList(n1).contains(getInput)) {
...

 if(n1.contains(getInput)) {

关于java - 使用 if 语句比较 String 和 Arrays.asList 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46897235/

相关文章:

java - 语法错误 : Encountered ";"

java - 声明包含 64 个元素的多个数组比声明包含 65 个元素的数组快 1000 倍

javascript - 如何将第二个数组中的 CompletedCount 值更改为 230?

java - 如何在java中正确地使计数器工作

java - java中一个变量是否可以有多个潜在值

java - Collectors.toList() 返回什么样的 List<E>?

java - 不推荐使用controlsfx 对话框是为了什么?

java - 无法找到 weblogic.management.mbeanservers.domainruntime

arrays - 算法问题 - 在列表中查找一组项目

javascript - 如何检查函数是否已执行?