数组内由大写字母和数字组成相同长度特征的字符串组成,用Java 实现排序
时间: 2024-02-27 14:54:06 浏览: 80
您好,可以使用Java中的Arrays.sort()方法和Comparator接口来实现排序。以下是一个示例代码:
```java
import java.util.Arrays;
import java.util.Comparator;
public class StringSorter {
public static void main(String[] args) {
String[] arr = {"A1B2", "C3D4", "E5F6", "G7H8", "I9J10"};
Arrays.sort(arr, new StringComparator());
System.out.println(Arrays.toString(arr));
}
}
class StringComparator implements Comparator<String> {
@Override
public int compare(String s1, String s2) {
int len = s1.length();
for (int i = 0; i < len; i++) {
char c1 = s1.charAt(i);
char c2 = s2.charAt(i);
if (c1 != c2) {
return c1 - c2;
}
}
return 0;
}
}
```
在上述代码中,我们先定义了一个StringSorter类和一个StringComparator类。StringSorter类中定义了一个String类型的数组arr,数组中包含了一些由大写字母和数字组成相同长度特征的字符串。然后,我们使用Arrays.sort方法对这个数组进行排序,排序时需要传入一个Comparator类型的比较器,这里我们传入了我们自己定义的StringComparator对象。
在StringComparator类中,我们实现了Comparator接口的compare方法。在比较两个字符串时,我们先比较它们的第一个字符,如果不相等,则返回它们的ASCII码值之差;如果相等,则继续比较它们的下一个字符,直到比较完所有字符。如果两个字符串完全相等,则返回0。
最后,我们可以看到输出的结果是按照相同长度特征排序的。
阅读全文