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

我正在尝试使用来根据字符串的长度对字符串数组进行排序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表达式( 如 答案)。但是,如果您使用的是 JDK

1.7或更早版本,请尝试编写一个 如下所示:

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()按长度对字符串数组进行排序 的全部内容, 来源链接: utcz.com/qa/430891.html

回到顶部