1

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

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

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

?

4

2 回答 2

7

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

公共布尔包含(对象o)

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

只需像这样使用它:

myList.contains(searchString);
于 2013-10-08T16:11:46.067 回答
1

您正在寻找Collection#contains方法,因为从接口List继承此方法。Collection从它的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". 如果您想要/需要这个,您将必须编写自己的方法并使用迭代器。

于 2013-10-08T16:17:42.447 回答