在Java中,检查字符串是否在列表中的最优雅/惯用的方法是什么?
,例如,如果我有String searchString = "abc"; List<String> myList = ....
,那么Java与我在Perl中所做的相同:
my $isStringInList = grep { /^$searchString$/ } @myList;
# or in Perl 5.10+
my $isStringInList = $searchString ~~ @myList;
答案 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
方法,因为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"
,您将获得相同的结果。如果你想要/需要这个,你必须编写自己的方法并使用迭代器。