如何按字符串的前几个字母排序



例如,如果我有一个字符串数组{"Bob", "Bom", "Ash", "Ben"},如何先按第一个字母(ASCII值(排序,然后按第二个字母排序,依此类推,而不丢失以前的排序顺序?所以排序后会变成{"Ash", "Ben", "Bob", "Bom"}

您可以在util包中使用Arrays方法

import java.util.Arrays;
public class MyClass {
public static void main(String args[]) {
String[] ar = {"Bob", "Bom", "Ash", "Ben"};
Arrays.sort(ar);
System.out.println(Arrays.toString(ar));  
}
}

非常直接-使用只接受前N个字母的自定义比较器(s.substring(0, N)(:

String[] source = {"Bob", "Ben", "Bom", "Ash"};
int N = 2; // sort by first 2 chars
String[] result = Arrays.stream(source)
.sorted(Comparator.comparing(s -> s.substring(0, N)))
.toArray(String[]::new);

其他选项:

String[] names = {"Bob", "Bom", "Ash", "Ben"};
System.out.println(new TreeSet(Arrays.asList(names)));

最新更新