Java:对String数组进行排序,其字符串表示int
问题内容:
我有String[]
数组喜欢
{"3","2","4","10","11","6","5","8","9","7"}
我想按数字顺序而不是字母顺序进行排序。
如果我用
Arrays.sort(myarray);
我得到
{"10","11","2","3","4","5","6","7","8","9"}
代替
{"2","3","4","5","6","7","8","9","10","11"}
问题答案:
我认为到目前为止,将String
s 转换为s 的最简单,最有效的方法int
是:
int[] myIntArray = new int[myarray.length];
for (int i = 0; i < myarray.length; i++) {
myIntArray[i] = Integer.parseInt(myarray[i]);
}
然后对整数数组进行排序。如果确实需要,您可以随时将其转换回:
for (int i = 0; i < myIntArray.length; i++) {
myarray[i] = "" + myIntArray[i];
}
一种替代方法是使用Comparator接口来精确指示元素的比较方式,但这可能等同于将每个String
值转换为任意值int
-使上述方法更加有效。