即使字符串匹配,string contains()方法也返回false

时间:2018-11-29 05:05:58

标签: java selenium

getText是:管理
公司//管理层和公司不在同一行
colName是管理公司

代码:它不返回true

   for(int j=0;j<allHeader.size();j++) {System.out.println(allHeader.get(j).getText().trim().toLowerCase()+"::"+colName.trim().toLowerCase());
                  if(allHeader.get(j).getText().trim().toLowerCase().contains(colName.trim().toLowerCase())){
                      System.out.println("true");
                      colNum=j+1;
                  }     

2 个答案:

答案 0 :(得分:0)

看起来您想匹配2个字符串,而忽略换行符和空格字符。您可以先删除空格字符,然后检查是否相等(或包含):-

String getText = "management\ncompany";
String colName = "management company";
boolean match = getText.replaceAll("\\s+", "")
        .equalsIgnoreCase(colName.replaceAll("\\s+", ""));
System.out.println(match);

或者较不灵活的方法是用空格替换换行符:-

boolean match = getText.replaceAll("\n", " ").equalsIgnoreCase(colName);

输出:-

true

答案 1 :(得分:0)

您的管理层和公司是什么意思?

它不起作用,因为当您检查“ management company”时,您的getText()返回“ management \ n company”之类的内容,因此返回的错误coz找不到确切的字符串“ management company”

u可以替换\ n然后对其进行测试