+-
我试图使用 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数组进行排序 - 乐贴网