+-
如何使用Arrays.sort()按长度对String数组进行排序
我试图使用 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.

最佳答案
如果您使用的是JDK 1.8或更高版本,则可以使用lambda表达式,例如matt answer.但是,如果您使用的是JDK 1.7或更早版本,请尝试编写这样的自定义Comparator:

String S = "No one could disentangle correctly";
String W[] = S.split(" ");
Arrays.sort(W, new java.util.Comparator<String>() {
    @Override
    public int compare(String s1, String s2) {
        // TODO: Argument validation (nullity, length)
        return s1.length() - s2.length();// comparision
    }
});
点击查看更多相关文章

转载注明原文:如何使用Arrays.sort()按长度对String数组进行排序 - 乐贴网