Java 筛选示例字符串中包含的项

Java 筛选示例字符串中包含的项,java,hamcrest,lambdaj,Java,Hamcrest,Lambdaj,我想使用Lambdaj和hamcrest匹配器来简单地检查示例字符串是否包含至少一个列表项 private static List<String> FIELDS=Arrays.asList("one","two","three","four"); String myString="This string may contain 'one' word or 'two' word"; boolean stringContainsItem=filter(Matchers.contains

我想使用Lambdaj和hamcrest匹配器来简单地检查示例字符串是否包含至少一个列表项

private static List<String> FIELDS=Arrays.asList("one","two","three","four");

String myString="This string may contain 'one' word or 'two' word";
boolean stringContainsItem=filter(Matchers.containsString(myString),FIELDS).isEmpty();
private static List FIELDS=Arrays.asList(“一”、“二”、“三”、“四”);
String myString=“此字符串可能包含“一”字或“两”字”;
布尔stringContainsItem=filter(Matchers.containsString(myString),FIELDS.isEmpty();
但是匹配器是不正确的。
在那个地方我需要一些反向匹配器,它检查myString是否包含列表项。

您可以编写自己的匹配器:

private static List<String> FIELDS=Arrays.asList("one","two","three","four");

String myString="This string may contain 'one' word or 'two' word";
boolean stringDoesNotContainItem=filter(createIsInStringMatcher(myString),FIELDS).isEmpty();
private TypeSafeMatcher<String> createIsInStringMatcher(final String string) {
    return new TypeSafeMatcher<String>() {

        @Override
        public void describeTo(Description description) {
        }

        @Override
        protected boolean matchesSafely(String item) {
            return string.indexOf(item) >= 0;
        }
    };
}
List<String> FIELDS = Arrays.asList("one", "two", "three", "four");

String myString = "This string may contain 'one' word or 'two' word";
boolean stringContainsItem = Lambda.exists(FIELDS, createIsInStringMatcher(myString));