【发布时间】:2019-04-21 20:58:21
【问题描述】:
我有字符串数组:15MB、12MB、1TB、1GB。我想通过遵循 MB 小于 GB 和 TB 的规则来按字典顺序比较它们。 所以最后我想得到:12MB、15MB、1GB、1TB。我找到了一种比较字母的方法:
final static String ORDER="MGT";
public int compare(String o1, String o2) {
int pos1 = 0;
int pos2 = 0;
for (int i = 0; i < Math.min(o1.length(), o2.length()) && pos1 == pos2; i++) {
pos1 = ORDER.indexOf(o1.charAt(i));
pos2 = ORDER.indexOf(o2.charAt(i));
}
if (pos1 == pos2 && o1.length() != o2.length()) {
return o1.length() - o2.length();
}
return pos1 - pos2 ;
}
我正在考虑按数字和字母拆分字符串,但是我怎样才能按字母“MB..”对它们进行排序,然后按它们的数字排序。我是使用两个比较器还是其他什么东西?
【问题讨论】:
-
看看:stackoverflow.com/questions/13973503/… 那里有一个有趣的解决方案。
-
已经做了,但他们只比较数字而不是字母。