【发布时间】:2011-09-07 16:09:56
【问题描述】:
我有一个由名称和分数组成的字符串数组。我想按分数对该数组进行排序。问题是,考虑到它是一个字符串数组,分数是导致 13,16,2,5,6 而不是 2,5,6,13,16 的字符串。我正在使用此代码:
int spaceIndex;
String[][] scoreboard;
String[] playername;
String[] score;
int sbsize;
array1.add("Thomas" + ":" + 5);
array1.add("Blueb" + ":" + 6);
array1.add("James" + ":" + 16);
array1.add("Hleb" + ":" + 13);
array1.add("Sabbat" + ":" + 2);
sbsize = array1.size();
scoreboard = new String[sbsize][2];
playername = new String[sbsize];
score = new String[sbsize];
pos2 = new int[sbsize];
for (int i=0; i<array1.size(); i++)
{
spaceIndex = array1.get(i).indexOf(':');
scoreboard[i][0] = array1.get(i).substring(0, spaceIndex);
scoreboard[i][1] = array1.get(i).substring(spaceIndex+1, array1.get(i).length());
}
Arrays.sort(scoreboard, new Comparator<String[]>() {
@Override
public int compare(String[] entry1, String[] entry2) {
String time1 = entry1[1];
String time2 = entry2[1];
return time1.compareTo(time2);
}
});
解决办法是什么?
【问题讨论】:
-
如果那是分数,为什么不将它存储为整数呢?好的,即使不存储为整数,也可以将其转换为整数并进行比较。