关于java:查找数组中是否存在String

Find if a String is present in an array

本问题已经有最佳答案,请猛点这里访问。

好吧,假设我有一个数组,其中填充了"tube"、"are"、"fun",然后我有一个jtextfield,如果我键入其中一个命令来执行某项操作,如果不是像一条消息说"command not found"。

我试着看Java文档,但我所得到的是我不想要的东西,像问题和东西…那么,这是怎么做到的?我知道有一个"in-array"函数,但是我不太擅长将两者结合在一起。

谢谢。

以下是迄今为止我所拥有的:

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

但我在丹中找不到符号。


这就是你要找的:

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

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

如果您有一个不重复的值列表,最好使用一个具有相同contains方法的Set


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


使用Arrays.asList()将数组包装在List中,该方法没有contains()方法:

2


这可以使用流在Java 8中完成。

1
2
3
4
5
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());


如果可以按排序顺序组织数组中的值,那么可以使用Arrays.binarySearch()。否则,您必须编写一个循环并进行线性搜索。如果您计划在数组中使用一个大的(超过几十个)字符串,请考虑改用集合。