即使字符串包含子字符串,字符串也包含方法 return false
String contains method return false even when string contains substring
我有一个字符串:
20160719_P_BID_20160718_130000
我需要检查这个字符串是否包含子字符串 "BID"。我尝试了各种方法,例如:
.contains("BID") / .contains("_BID_")
.indexOf("BID")
.substring(11,14).equals("BID)
但是所有方法都返回了 false
即使字符串的输出确实包含字符串 "BID"
并且是字符串 "BID"
更新:
String fileName = file.getFileName();
String tradeTypeStr = fileName.substring(11,14);
if(tradeTypeStr.equalsIgnoreCase(tradeType))
有人可以阐明为什么这些方法返回 false 吗?
感谢您的帮助!
测试这个
String fileName = file.getName();
if(fileName.contains(tradeTypeStr))
因为 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
您已找到问题的原因
我有一个字符串:
20160719_P_BID_20160718_130000
我需要检查这个字符串是否包含子字符串 "BID"。我尝试了各种方法,例如:
.contains("BID") / .contains("_BID_")
.indexOf("BID")
.substring(11,14).equals("BID)
但是所有方法都返回了 false
即使字符串的输出确实包含字符串 "BID"
并且是字符串 "BID"
更新:
String fileName = file.getFileName();
String tradeTypeStr = fileName.substring(11,14);
if(tradeTypeStr.equalsIgnoreCase(tradeType))
有人可以阐明为什么这些方法返回 false 吗?
感谢您的帮助!
测试这个
String fileName = file.getName();
if(fileName.contains(tradeTypeStr))
因为 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
您已找到问题的原因