java写一个写一个排序里边有一个字母数字其中按照字母有大小写,按照字母和数字进行排序
时间: 2024-10-05 22:02:18 浏览: 19
在Java中,如果你想要对包含字母和数字的字符串数组进行排序,首先需要考虑如何处理字母的大小写,然后可以利用`Collections.sort()`方法结合自定义比较器(Comparator)来实现。这里是一个示例:
```java
import java.text.Collator;
import java.util.*;
public class SortExample {
public static void main(String[] args) {
String[] mixedArray = {"z9", "a1", "B2", "c0", "D5", "e3"};
// 使用Collator按字母顺序忽略大小写排序
Arrays.sort(mixedArray, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return Collator.getInstance().compare(s1.toLowerCase(), s2.toLowerCase());
}
});
System.out.println("Sorted array (case-insensitive alphabetically first):");
for (String str : mixedArray) {
System.out.println(str);
}
// 然后再按照混合模式(字母-数字)排序
Arrays.sort(mixedArray, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
int numComparison = Integer.compare(s1.replaceAll("[A-Za-z]", ""), s2.replaceAll("[A-Za-z]", ""));
if (numComparison != 0) return numComparison;
// 如果数字部分相等,再按字母顺序
return Collator.getInstance().compare(s1, s2);
}
});
System.out.println("\nSorted array (alphabetically then numerically):");
for (String str : mixedArray) {
System.out.println(str);
}
}
}
```
这个程序首先将数组按字母(忽略大小写)排序,然后再按照混合模式(先字母后数字)排序。
阅读全文