查找数组中是否存在String

时间:2010-08-26 03:59:07

标签: java arrays

好吧,假设我有一个充满{“tube”,“are”,“fun”}的数组,然后我有一个JTextField,如果我键入其中一个命令来执行某些操作,如果不是这样的话消息说“未找到命令”。

我尝试查看Java文档,但我得到的是我不想要的东西,如问题和内容......那么,这是怎么做到的?我知道有一个“数组内”功能,但我把两者结合在一起并不太好。

感谢。

这是我到目前为止所做的:

String[] dan = {"Red", "Orange", "Yellow", "Green", "Blue", "Violet", "Orange", "Blue"};
boolean contains = dan.contains(say.getText());

但是我在dan.contains中找不到符号

5 个答案:

答案 0 :(得分:67)

这就是你要找的东西:

List<String> dan = Arrays.asList("Red", "Orange", "Yellow", "Green", "Blue", "Violet", "Orange", "Blue");

boolean contains = dan.contains(say.getText());

如果您有未重复值的列表,请使用具有相同contains方法的Set<String>

答案 1 :(得分:33)

String[] a= {"tube", "are", "fun"};
Arrays.asList(a).contains("any");

答案 2 :(得分:7)

使用Arrays.asList()将数组包装在具有contains()方法的List<String>中:

Arrays.asList(dan).contains(say.getText())

答案 3 :(得分:4)

这可以在java 8中使用Stream。

完成
import java.util.stream.Stream;

String[] stringList = {"Red", "Orange", "Yellow", "Green", "Blue", "Violet", "Orange", "Blue"};

boolean contains = Stream.of(stringList).anyMatch(x -> x.equals(say.getText());

答案 4 :(得分:1)

如果您可以按排序顺序组织数组中的值,则可以使用Arrays.binarySearch()。否则你将不得不写一个循环和线性搜索。如果您计划在数组中包含大量(超过几十个)字符串,请考虑使用Set。