好吧,假设我有一个充满{“tube”,“are”,“fun”}的数组,然后我有一个JTextField,如果我键入其中一个命令来执行某些操作,如果不是这样的话消息说“未找到命令”。
我尝试查看Java文档,但我得到的是我不想要的东西,如问题和内容......那么,这是怎么做到的?我知道有一个“数组内”功能,但我把两者结合在一起并不太好。
感谢。
这是我到目前为止所做的:
String[] dan = {"Red", "Orange", "Yellow", "Green", "Blue", "Violet", "Orange", "Blue"};
boolean contains = dan.contains(say.getText());
但是我在dan.contains中找不到符号
答案 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。