如何使用Arrays.sort()按长度对字符串数组进行排序
我正在尝试使用来根据字符串的长度对字符串数组进行排序Arrays.sort()
,但这会按字典顺序而不是按长度对字符串进行排序。这是我的代码:
S = "No one could disentangle correctly"String W[] = S.split(" ");
Arrays.sort(W);
排序后:
correctlycould
disentangle
no
one
但是我想要的是
no //length = 2one //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