public class TestDriver {
public static void main(String[] args) {
String y = "TEST RFP";
String z = "pvs_Test RFP";
boolean m = y.trim().toUpperCase().contains(z.trim().toUpperCase());
boolean x = y.trim().toUpperCase().matches(z.trim().toUpperCase());
boolean q = y.trim().toUpperCase().matches(".*\b" + z.trim().toUpperCase() + "\b.*");
System.out.println(m);
System.out.println(x);
System.out.println(q);
}
}
尝试包含,匹配模式匹配器,...但是它们 working.my 意图都不是返回 true,因为 y 和 z 包含值。
最后我想比较一下y = "TEST RFP",具有以下值。"测试招标书","测试 RFP","pvs_Test RFP","测试 QA PRPSL","rFP xyz"等...因为这些单词包含"TEST"或"RFP"并且应该返回 true。
你这样做是相反的,试试:
boolean m = z.trim().toUpperCase().contains(y.trim().toUpperCase());
//=> true
由于z
是大于变量 y
中包含的较小字符串将返回 true。
根据您编辑的问题和评论,您可以使用:
for (String tok: y.toUpperCase().split("\s+")) {
boolean m = z.toUpperCase().contains(tok);
System.out.println(m);
}