早安,
我在对字符串数组进行排序时遇到问题,根据其中哪些字符串中字母'p'最多的问题。即s1(苹果)早于s2(猿)...
我正在学习如何实现Comparator来执行此操作,然后使用s1.compareTo(s2)和lambda。最大的问题是,我不能为此使用流吗?
这是我对我的String数组COUNTRIES进行反向字母排序的方式
Comparator<String> reverseAlphabetic = (s1,s2) -> -s1.compareToIgnoreCase(s2);
Arrays.sort(COUNTRIES,reverseAlphabetic);
System.out.println("\nCountries in reverse alphabetic order");
for (int i=0; i<10;i++)
System.out.println("\t"+COUNTRIES[i]);
您可以执行以下操作:
Comparator<String> comparator = (str1, str2) ->
(str1.length() - str1.replaceAll("p", "").length() -
str2.length() - str2.replaceAll("p", "").length());
List<String> list = Arrays.asList("ape", "apple", "appple");
list.sort(comparator);
[苹果,苹果,猿]