将值添加到字符串数组时,我遇到了一个奇怪的问题,该数组稍后会使用哈希映射进行数组排序。我有一个文件名 XFR900a,并使用以下代码将 XFR900 部分添加到数组中;
private ArrayList<String> Types = new ArrayList<String>();
...
Types.add(name.substring(0,(name.length() - 1));
System.out.println(name.substring(0,(name.length() - 1));
我什至打印了给出“XFR900”的行,但是当我改用以下代码时,稍后的数组排序行为会有所不同;
Types.add("XFR900");
System.out.println(name.substring(0,(name.length() - 1));
这只是手动完成的子字符串部分,非常混乱。
是否有任何好的替代子字符串,因为那里必须有一些奇怪的非 ascii 字符?
菲尔
更新
谢谢大家的评论。这是稍后比较字符串的一些代码;
for (int i=0;i< matchedArray.size();i++){
//run through the arrays
if (last == matchedArray.get(i)) {
//add arrays to a data array
ArrayList data = new ArrayList();
data.add(matchedArray1.get(i));
data.add(matchedArray2.get(i));
data.add(matchedArray3.get(i));
data.add(matchedArray4.get(i));
data.add(matchedArray5.get(i));
//put into hash map
map.put(matchedArray.get(i), data);
}
else {
//TODO
System.out.println("DO NOT MATCH :" + last + "-" + matchedArray.get(i));
如您所见,我添加了一个测试 System.out.println("DO NOT MATCH" ... 下面是一些输出;
不匹配:FR99-XFR900 不匹配:XFR900-XFR900
我只在 XFR900a 文件名上运行子字符串。问题是最后打印的测试行 !=matchedArray.get(i) 但是当打印到显示器时它们是相同的。
菲尔