【发布时间】:2014-02-22 03:31:50
【问题描述】:
以下是我的列表,格式始终为bXXXX -
List<String> data = Arrays.asList("b5", "b10", "b2", "b1", "b40");
System.out.println(data);
我的data 列表将始终包含bXXXX 形式的字符串
现在我需要按降序对上面的列表进行排序并从中提取最大的字符串..
所以在上面的例子中,它将是b40.. 所以下面是我使用的比较器,它按升序对所有内容进行排序 -
static final Comparator<String> aStringComparator = new Comparator<String>() {
public int compare(String s1, String s2) {
//assumed input are strings in the form axxxx
int numfromS1 = Integer.valueOf(s1.subSequence(1, s1.length()).toString());
int numfromS2 = Integer.valueOf(s2.subSequence(1, s2.length()).toString());
return numfromS1 - numfromS2;
}
};
而且我无法理解如何使它按降序排序,以便我可以从列表中提取第一个索引,这将是最大的字符串编号?
【问题讨论】:
标签: java string numbers comparator