【发布时间】:2015-01-29 12:21:34
【问题描述】:
如何根据字符串大小(即String#length)对String 的数组进行排序?
【问题讨论】:
-
Java 8:
Arrays.sort(strings, Comparator.comparing(String::length));.
标签: java arrays string sorting
如何根据字符串大小(即String#length)对String 的数组进行排序?
【问题讨论】:
Arrays.sort(strings, Comparator.comparing(String::length));.
标签: java arrays string sorting
在 Java 8 中,这可以在一行中完成,
Arrays.sort(randomString, (s1,s2) -> Integer.compare(s1.length(), s2.length()));
如果你想要相反的顺序(从高到低),
改成,
Arrays.sort(randomString, (s1,s2) -> Integer.compare(s2.length(), s1.length()));
另一种方法,
使用Comparator.comparing(String::length),
Arrays.sort(yourArray, Comparator.comparing(String::length));
颠倒顺序,
Arrays.sort(yourArray, Comparator.comparing(String::length).reversed());
【讨论】:
您可以实现一个使用长度的Comparator,并将Arrays.sort 与您的比较器一起使用。比较器可能如下所示:
class StringComparator implements Comparator<String>{
public int compare(String o1, String o2){
return Integer.compare(o1.length(), o2.length());
}
}
现在您可以使用以下调用进行排序:
Arrays.sort(strings, new StringComparator());
【讨论】: