如何根据字符串大小排序String
数组,例如String#length
?
答案 0 :(得分:3)
在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());
答案 1 :(得分:2)
您可以实施一个使用长度的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());