如何使用包含或匹配项返回 true


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);
}

相关内容

  • 没有找到相关文章

最新更新