我在String类型中遇到了一个问题:
列表字符串中的字符串与原始字符串不同
这是我的示例代码
Map<String, List<String>> parameters_test=new HashMap<String, List<String>>();
parameters_test.put("0",new LinkedList<String>());parameters_test.get("0").add("WM188126M");
parameters_test.put("1",new LinkedList<String>());parameters_test.get("1").add("BXJ006");
parameters_test.put("2",new LinkedList<String>());parameters_test.get("2").add("1829690014");
parameters_test.put("3",new LinkedList<String>());parameters_test.get("3").add("16");
然后将地图放入另一个方法
if (getParamsMap() != null) {
for (String item : getParamsMap().keySet()) {
List<String> valueList = getParamsMap().get(item);
if (valueList == null || valueList.isEmpty()) {
continue;
}
if (item.equals("0")) {
woCode = valueList.get(0);
} else if (item.equals("1")) {
product = valueList.get(0);
} else if (item.equals("2")) {
purchaseOrder = valueList.get(0);
} else if (item.equals("3")) {
labelNumbers = valueList.get(0);
}
}
}
if(woCode.equals("WM188126M")){
System.out.println("01 true");
}else{
System.out.println("01 fail");
}
if(product.equals("BXJ006")){
System.out.println("02 true");
}else{
System.out.println("02 fail");
}
if(purchaseOrder.equals("1829690014")){
System.out.println("03 true");
}else{
System.out.println("03 fail");
}
if(labelNumbers.equals("16")){
System.out.println("04 true");
}else{
System.out.println("04 fail");
}
为什么我总是得到这样的结果: 01是 02真 03失败 04失败
好一阵子了。 错误最近出现。
但是我什么都没改变。
该代码用于Java 1.6 64bit
-Eclipse
文本文件编码:UTF-8
我已经尝试了很长时间。 最好的问候。
答案 0 :(得分:0)
“ 1829690014”中有一个特殊字符。只需在parameters_test
中重新输入输入字符串(特别是1),它应该可以正常工作。
答案 1 :(得分:0)
列表中的字符串“ 1829690014”为[,1、8、2、9、6、9、0、0、1、4],而不是[1、8、2、9、6、9, 0,0,1,4],所以当您比较这两个时,会出现错误。
答案 2 :(得分:0)
parameters_test.put(“ 2”,新的LinkedList());
parameters_test.get(“ 2”)。add(“ 1829690014”);