有没有比较好的非字符串转换成int的方法,转换后主要用于排序,类似于mysql底层 order by 字符串字段的逻辑?
java实现
java中字符串就可以直接用于排序呀,它本身 就实现了 比较器的功能
// list集合排序
List<String> list = new ArrayList<>();
Collections.sort(list); // 默认升序
// 也可以自己定义比较器
List<String> list = new ArrayList<>();
Comparator<String> comparator = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
// return o1.compareTo(o2); // 升序
return o2.compareTo(o1); // 降序
}
};
Collections.sort(list, comparator);
mysql:你要保证这个数字就是数字来的。你可以使用order by ifnull(sort, 0) - 0 这样来排序
Integer.parseInt()
要实现所有的字符串转整形原则上是实现不了的,因为字符串组合算下来数量肯定是不止整型能够装的下的,整型的范围-2 147 483 648至2 147 483 647,这才几十亿的范围,肯定不够装下所有的字符串
但是有一种思路你看看是不是有帮助,可以将字符串转成字节数组( byte[] bytes = str.getBytes(StandardCharsets.UTF_8) ),然后将字节数组转成整型即可,但是要考虑超出范围的处理方式哦(四个字节),如果整型不够可以考虑长整型,如果字符串的长度不是很长,应该是可以这样做的