(java)无法检查ArrayList是否包含特定字符串

时间:2015-10-19 13:03:20

标签: java string arraylist contains

有这个问题,我被困了好几个小时。 我试图检查ArrayList中的特定字符串。

这是我正在检查的ArrayList:

public ArrayList getAllowedPlayers() {
    return this.allowedPlayers;
}

用户名小写以小写形式添加到此列表中。

然后我用它来检查输入命令的玩家是否在列表中:

 boolean addedToSSList = data.getAllowedPlayers().contains(astring[0].toLowerCase());

"数据"指的是已输入的用户名的ArrayList(astring [0])。哪个是另一个班级。 然后我使用print to chat消息来检查boolean是变为true还是false,在我的情况下总是返回false。

        icommandsender.sendChatToPlayer("addedToList: "+addedToSSList);

但是,我可以看到输入的用户名已添加到列表中:

        icommandsender.sendChatToPlayer("Allowed players: "+data.getAllowedPlayers())

来自icommandsender的玩家是使用该命令查看他是否在ArrayList上的人。

所以基本上: 我可以看到我输入的用户名在ArrayList上(小写)。 astring [0]是我输入的小写的用户名。但是我的布尔方法仍然会返回false。

1 个答案:

答案 0 :(得分:2)

试试这个:

boolean addedToSSList = data.getAllowedPlayers().contains(astring[0].toLowerCase().trim());

你的字符串中可能有一些尾随空格。

修改

public boolean findString(String s, ArrayList<String> al){
     for (String str : al){
        if (str.equalsIgnoreCase(s)){
            return true;
         }
     }
    return false;
  }

然后你可以找到像

findString("myString", yourArrayList);