java对String类型的集list进行排序。包含数组和英文
时间: 2024-03-20 12:40:45 浏览: 95
可以使用Java中的`Collections.sort()`方法对字符串列表进行排序。由于题目要求对数字、大写字母、小写字母和中文拼音进行排序,因此需要自定义比较器来实现对应规则的排序。
例如,以下代码实现了对包含数字、大写字母、小写字母和中文拼音的字符串列表进行排序:
```java
import java.util.*;
import java.util.regex.Pattern;
public class SortStringList {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("A");
list.add("a");
list.add("B");
list.add("b");
list.add("1");
list.add("2");
list.add("中文");
list.add("中文a");
list.add("中文b");
list.add("中文1");
list.add("中文2");
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
int type1 = getChartType(s1.charAt(0));
int type2 = getChartType(s2.charAt(0));
if (type1 != type2) {
return type1 - type2;
}
return s1.compareTo(s2);
}
});
for (String str : list) {
System.out.println(str);
}
}
private static int getChartType(char c) {
if (Character.isDigit(c)) {
return 1;
}
if (Character.isUpperCase(c)) {
return 2;
}
if (Character.isLowerCase(c)) {
return 3;
}
if (Pattern.matches("[\u4e00-\u9fa5]", String.valueOf(c))) {
return 4;
}
return 5;
}
}
```
这里定义了一个`getChartType()`方法,根据字符类型返回对应数字,数字、大写字母、小写字母、中文拼音和其他字符分别返回1、2、3、4和5。然后使用`Collections.sort()`方法对字符串列表进行排序,排序规则先按照字符类型排序,然后按照字符串的自然顺序排序。最后输出排序后的结果。
阅读全文