Arrays.sort()字符数组忽略大小写排序
时间: 2023-10-25 09:12:17 浏览: 126
可以使用Arrays.sort()方法和一个自定义的比较器来忽略大小写进行排序。以下是一个示例代码:
```java
String[] arr = {"Apple", "banana", "cherry", "dates"};
Arrays.sort(arr, String.CASE_INSENSITIVE_ORDER);
System.out.println(Arrays.toString(arr));
```
输出结果为:`[Apple, banana, cherry, dates]`,可以看到数组已经按照忽略大小写的方式排好序了。
如果要自定义比较器,可以使用`Comparator`接口,例如:
```java
String[] arr = {"Apple", "banana", "cherry", "dates"};
Arrays.sort(arr, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2);
}
});
System.out.println(Arrays.toString(arr));
```
输出结果同样为:`[Apple, banana, cherry, dates]`,也是按照忽略大小写的方式排好序了。
相关问题
String[] names = {"boby", "angela", "Andy" ,"dlei", "caocao", "Babo", "jack", "Cici"}; //1.要求忽略首字符大小写进行排序。
首先,您可以使用`Arrays.sort()`方法对字符串数组进行排序,并使用自定义的比较器来忽略首字符的大小写。以下是实现此功能的代码示例:
```java
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
String[] names = {"boby", "angela", "Andy" ,"dlei", "caocao", "Babo", "jack", "Cici"};
Arrays.sort(names, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.substring(1).compareToIgnoreCase(s2.substring(1));
}
});
System.out.println(Arrays.toString(names));
}
}
```
这将输出排序后的数组:
```
[angela, Andy, Babo, boby, caocao, Cici, dlei, jack]
```
用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()方法将输入的数组按照自定义的排序规则进行排序。
阅读全文