在排序的时候如果根据中文排序,在排序的list如果是涉及到数字的排序就不是很准确,例如会出现下面这样的情况
这里写的一个自然排序算法,可以将list进行转换,如果需要排序的是list的实体,修改方法naturalSort中的排序的两个参数就行
package cn.javabb.common;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
//包装器类
public class OrderWrapper{
public static int atoi(String str) {
//这里要小心,需要判断有效性
if (str == null || str.length() == 0) {
return 0;
}
int nlen = str.length();
double sum = 0;
int sign = 1;
int j = 0;
//剔除空格
while (str.charAt(j) == ' ') {
j++;
}
//判断正数和负数
if (str.charAt(j) == '+') {
sign = 1;
j++;
} else if (str.charAt(j) == '-') {
sign = -1;
j++;
}
for (int i = j; i &