我们如何将字符串列表与字符串进行比较

时间:2016-02-20 05:49:39

标签: java

我有:

String[] Value={"Available to trade at 12 30","I love sherlock"}

我想检查列表中是否存在 sherlock 而不使用for each循环。

4 个答案:

答案 0 :(得分:1)

Java流对于此

非常方便
String[] value = {"Available to trade at 12 30", "I love sherlock"};
Stream.of(value).anyMatch(s -> s.contains("sherlock"));

如果你想获得有sherlock的字符串:

String[] value = {"Available to trade at 12 30", "I love sherlock"};
Stream.of(value).filter(s -> s.contains("sherlock")).findFirst().get();

如果您不关心订单,请使用findAny()。 findAny和findFirst都返回一个Optional,如果没有匹配则为空,并且会抛出.get()。

答案 1 :(得分:0)

你可以做这样的事情

Arrays.asList(Value).contains("要搜索的字符串");

更好的选择是将数组转换为列表,以便可以使用多个函数

答案 2 :(得分:0)

问题固有地要求你遍历数组中的所有元素,基本上为每个元素执行一个。但是,您可以选择是否需要良好的内存性能或良好的查找执行时间。

如果你想要良好的内存性能,请保持原样并在每次执行检查时遍历列表。为了获得良好的执行时间,您应该创建一个hashset并使用列表中的每个子字符串填充它。这有点耗时并且占用大量内存,但是一旦构建了集合,就可以保留它并重复使用,使每次运行时检查只需要记录时间。

答案 3 :(得分:0)

您可以将数组转换为单个String,然后使用String .contains方法。

String entireArray = Arrays.toString(Value);
boolean sherlockPresent = entireArray.contains("sherlock");
相关问题