将值添加到String数组时会出现一个奇怪的问题,该数组后来使用哈希映射进行数组排序.我有一个文件名XFR900a,并使用以下代码将XFR900部分添加到数组中;
private ArrayList Types = new ArrayList();
...
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字符?
菲尔
UPDATE
谢谢大家的评论.以下是一些后来比较字符串的代码;
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)然而,当打印到显示器时它们是相同的.
菲尔