检查字符串是否在列表中最优雅/惯用的方法是什么?

时间:2013-10-08 16:08:52

标签: java string list

在Java中,检查字符串是否在列表中的最优雅/惯用的方法是什么?

,例如,如果我有String searchString = "abc"; List<String> myList = ....,那么Java与我在Perl中所做的相同:

my $isStringInList = grep { /^$searchString$/ } @myList;
# or in Perl 5.10+
my $isStringInList = $searchString ~~ @myList;

2 个答案:

答案 0 :(得分:7)

您可以使用List contains方法检查列表中是否存在字符串:

public boolean contains(Object o)

  

如果此列表包含指定的元素,则返回true。更多   正式地,当且仅当此列表包含至少一个时才返回true   元素e使得(o == null?e == null:o.equals(e))。

只需像这样使用它:

myList.contains(searchString);

答案 1 :(得分:1)

您正在寻找Collection#contains方法,因为ListCollection接口继承了此方法。来自它的Javadoc:

  

boolean contains(Object o)

     

如果此集合包含指定的元素,则返回true。更正式的是,当且仅当此集合包含至少一个true元素e时才返回(o==null ? e==null : o.equals(e))

使用起来非常简单:

String searchString = "abc";
List<String> myList = .... //create the list as you want/need
if (myList.contains(searchString)) {
    //do something
} else {
    //do something else
}

请注意,这不支持不敏感的搜索,即您可以在列表中添加"abc",但并不意味着如果寻找"aBc",您将获得相同的结果。如果你想要/需要这个,你必须编写自己的方法并使用迭代器。