我已经实现了一个基本的 Guava 谓词:
containsPatternIgnoreCase(@Nullable final String input) {
checkNotNull(input);
return new Predicate<String>() {
@Override
public boolean apply(@Nullable String current) {
checkNotNull(current);
return current.toLowerCase(ENGLISH).contains(input.toLowerCase(ENGLISH));
}
};
}
一切都很好,但是一个测试用例在 Travis 上失败了:
assertThat(containsPatternIgnoreCase("TURKİYE").apply("turkiye güzel")).isTrue();
我在我的实现中注意不继承默认语言环境,所以我真的想知道那里可能有什么问题。它可能取决于JDK版本吗?
这是我的机器上使用的:
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06-451-10M4406)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01-451, mixed mode)
在 Travis CI 上:
java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
非常感谢你的帮助!罗尔夫