日期:2014-05-20  浏览次数:20704 次

有个基础问题想问下大家
就是我有个字符串数组无序的00100000   002000000 00300000  004000000
然后我把它们变成了整形数组之后 前面的00都没有了嘛 变成这个是因为排序
现在我想问的就是 我如何在把00加上去并且还是变成一个整形的数组 或者其他的数组也可以但是一定要可以排序我用的是arrays.sort()方法 可是我换成字符串排序这个一直报错 我怀疑是不是我定义的长度有关系 里面有null值 但是这个数组也是动态的 这个排序也是其中的一部分而已 
现在出的问题就是前面的00消失了 导致我查询数据的时候出现了问题。希望大家帮下我有没有其它的好办法排序的或者转换成整形数组的时候可以前面带上00的 我用了一下DECImalformat 也不行。 

------解决方案--------------------
可以自己先写一个比较两个字符串大小的算法,然后根据这个算法把算组排序
------解决方案--------------------
把null换成字符串"null"排序,最后再换回来就好了

import java.util.Arrays;

public class Test02 {
public static void main(String[] args) {
String[] arr = new String[] { null, "00400000", "00200000", null,
"00100000", "00300000" };
sort(arr);
System.out.println(Arrays.toString(arr));
}

static void sort(String[] arr) {
final String nullString = "null";
for (int i = 0; i < arr.length; ++i) {
if (arr[i] == null) arr[i] = nullString;
}
Arrays.sort(arr);
for (int i = 0; i < arr.length; ++i) {
if (arr[i].equals(nullString)) arr[i] = null;
}
}
}

结果
[00100000, 00200000, 00300000, 00400000, null, null]
------解决方案--------------------
试着用集合处理下,应该没问题的