java对于长度相同的字符串按照字典序从大到小排序。
时间: 2024-04-30 15:25:17 浏览: 62
可以使用Java中的`Arrays.sort()`方法和自定义的比较器来实现按字典序从大到小排序。
```
import java.util.Arrays;
import java.util.Comparator;
public class SortStrings {
public static void main(String[] args) {
String[] strings = {"apple", "banana", "cherry", "date", "elderberry"};
Arrays.sort(strings, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return -s1.compareTo(s2);
}
});
System.out.println(Arrays.toString(strings));
}
}
```
在比较器中,我们对字符串进行比较时,使用了`compareTo()`方法,将结果取反,以实现按照字典序从大到小排序。
相关问题
在java语言中,一列表 List<String> list = ArraysasList(“FA","WWA”"YKJ”,“JASA"),请对该ist 进行排序,使元素字符串长度从大到小排列,长度相同时比较字符大小,由大到小排序
可以使用Collections.sort() 方法结合自定义的Comparator 来对 List 进行排序,过程如下:
```
List<String> list = Arrays.asList("FA", "WWA", "YKJ", "JASA");
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
int len1 = o1.length();
int len2 = o2.length();
if (len1 != len2) {
return len2 - len1; // 长度不同,按照长度从大到小排序
} else {
return o2.compareTo(o1); // 长度相同,按照字典序从大到小排序
}
}
});
System.out.println(list); // 输出 [JASA, WWA, YKJ, FA]
```
用java写一个方法,传入一个字符串数组,按照长度排序,如果长度相同就按照字母表顺序排序,不区分大小写
以下为Java代码实现:
```java
public static void sortStringArray(String[] arr) {
Arrays.sort(arr, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
int len1 = s1.length();
int len2 = s2.length();
if (len1 != len2) {
return len1 - len2; // 长度不同,按长度排序
} else {
// 长度相同,按字母表顺序排序(不区分大小写)
return s1.compareToIgnoreCase(s2);
}
}
});
}
```
该方法使用了Java中的Arrays.sort()方法和Comparator接口。在Comparator接口的实现中,首先比较了两个字符串的长度,如果长度不同则按长度排序;如果长度相同,则利用String类的compareToIgnoreCase()方法比较两个字符串的字典序。最后,使用Arrays.sort()方法将输入的数组按照自定义的排序规则进行排序。
阅读全文