java中如何对以数字开头的字符串集合进行排序
本文介绍了java中如何对以数字开头的字符串集合进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
在Java中如何对图中的数据进行排序,排序后的结果是如上图
解决方案
楼上说的很对,关键是要取出字符串前面的数字,可能你目前对正则并不熟悉,所以我写个简单的取出字符串前面数字的方法:
import java.util.*;
public class Main {
// 取出字符串前面的数字
public static String getStartDigits(String str) {
int len = str.length();
int stopPos = 0;
for (int i = 0; i < len; i++) { // 遍历 str 的字符
char ch = str.charAt(i);
if (!(ch >= '0' && ch <= '9')) { // 如果当前字符不是数字
stopPos = i;
break;
}
}
return str.substring(0, stopPos);
}
public static void sortByStartDigits(List<String> list) {
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
int num1 = Integer.parseInt(getStartDigits(s1));
int num2 = Integer.parseInt(getStartDigits(s2));
return num1 - num2;
}
});
}
public static void main(String[] args) throws Exception {
List<String> list = Arrays.asList(
"1号摄像机", "10号摄像机", "2号摄像机", "20号摄像机", "30号摄像机", "31号摄像机");
System.out.println("排序前:");
System.out.println(list);
sortByStartDigits(list);
System.out.println("排序后:");
System.out.println(list);
}
}
这篇关于java中如何对以数字开头的字符串集合进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文