如何使用 Arrays.sort() 按长度对字符串数组进行排序

2022-09-02 02:08:22

我试图根据字符串的长度对字符串数组进行排序,但这是按字典顺序而不是按长度对字符串进行排序。这是我的代码:Arrays.sort()

S = "No one could disentangle correctly"
String W[] = S.split(" ");
Arrays.sort(W);

排序后:

correctly
could
disentangle
no
one

但我想要的是

no  //length = 2
one //length = 3
could //length = 4 and likewise
correctly
disentangle

如何获得上述输出?请回答 JDK 1.7 和 JDK1.8。


答案 1

对于 java 8 及更高版本

 Arrays.sort(W, (a, b)->Integer.compare(a.length(), b.length()));

一种更简洁的方法是使用Compolarator.comparingInt,来自Mano的答案


答案 2

替代和略简单马特的版本

Arrays.sort(W, Comparator.comparingInt(String::length));