我有一個字串串列,我需要根據每個單詞中 A 的頻率對它們進行排序。如果 A 相等,則比較 B,依此類推,直到 Z。假設課程串列中沒有字謎。
例子: [Banana, Isle, Best, Barb]
排序: [Banana, Barb, Best, Isle]
uj5u.com熱心網友回復:
您正在對多個標準進行排序,26 個標準,看起來像
# for banana, occurence of each char in alphabet
[3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
所以建立那個
from string import ascii_lowercase
def sorter(word: str):
word_low = word.lower()
return [word_low.count(c) for c in ascii_lowercase]
values = ["Banana", "Isle", "Best", "Barb"]
values = sorted(values, key=sorter, reverse=True)
print(values)
uj5u.com熱心網友回復:
初始陣列中的單詞可以使用比較器對從給定單詞的排序字符陣列構建的轉換字串進行排序:
public static String convert(String s) {
char[] c = s.toLowerCase().toCharArray();
Arrays.sort(c);
return new String(c);
}
String[] data = {"Banana", "Isle", "Best", "Barb", "Abracadabra", "aardvark", "Barnabie"};
Arrays.sort(data, Comparator.comparing(MyClass::convert));
System.out.println(Arrays.toString(data));
輸出:
[Abracadabra, Banana, aardvark, Barnabie, Barb, Best, Isle]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/351896.html
上一篇:一個簡單專案中的JavaNoClassDefFoundError
下一篇:字串連接是否是編譯時常量?