这是另一种解决方案,可能不是最好的或更有效的,但有效,并展示了这个库的强大功能。因此,您可以使用 lambdaj(在此处下载-网站)和 hamcrest(在此处下载-网站),这些库对于管理集合非常强大,以下代码非常简单并且可以完美运行:
import static ch.lambdaj.Lambda.having;
import static ch.lambdaj.Lambda.on;
import static ch.lambdaj.Lambda.select;
import static org.hamcrest.Matchers.stringContainsInOrder;
import java.util.Arrays;
import java.util.List;
public class StringContains_03{
public static void main(String[] args) {
List<String> source = Arrays.asList("This time only $FB,$RUG is highest priority".split(" "));
List<String> patterns = Arrays.asList("$FB","$F");
boolean patternsExistsInSource = select(source, having(on(String.class), stringContainsInOrder(patterns))).size()>0;
System.out.println(patternsExistsInSource);//shows: true
System.out.println(select(source, having(on(String.class), stringContainsInOrder(patterns))));//shows the matches: [$FB,$RUG]
}
}
请注意,只有通过这一行,您才能知道模式是否在另一行中。
boolean patternsExistsInSource = select(source, having(on(String.class), stringContainsInOrder(patterns))).size()>0;
使用这个库,您可以在一行中解决您的问题。您必须在项目中添加:hamcrest-all-1.3.jar和lambdaj-2.4.jar。
注意:这将帮助您假设您可以替代您的代码。我希望这会有用。
(已编辑)现在也适用于“这次只有 $FB,$RUG 是最高优先级”的情况。