字符串包含方法return false,即使字符串包含子字符串



我有一个字符串:

20160719_p_BID_20160718_130000

我需要检查这个字符串是否包含子字符串"BID"。我尝试过各种方法,比如:

  1. .contains("BID") / .contains("_BID_")
  2. .indexOf("BID")
  3. .substring(11,14).equals("BID)

但是所有方法都返回了false,即使字符串的输出确实包含字符串"BID"并且是字符串"BID"

更新:

String fileName = file.getFileName();
String tradeTypeStr = fileName.substring(11,14);        
if(tradeTypeStr.equalsIgnoreCase(tradeType))

有人能解释一下为什么这些方法返回错误吗?

谢谢你的帮助!

由于String.contains()和String.indexOf()确实有效,这听起来可能是您的编码有问题。尝试

    String fileName = file.getName();
    for (char c : fileName.toCharArray())
    {
        System.out.println(c + " : " + Integer.toHexString(c));
    }

如果你找不到类似的东西

_ : 5f
B : 42
I : 49
D : 44
_ : 5f

您已经找到了问题的原因

测试此

String fileName = file.getName();
if(fileName.contains(tradeTypeStr))

相关内容

最新更新