想知道是否有比计算给定字符串的字符数更简单的方法,如下所示?
String word = "AAABBB";
Map<String, Integer> charCount = new HashMap();
for(String charr: word.split("")){
Integer added = charCount.putIfAbsent(charr, 1);
if(added != null)
charCount.computeIfPresent(charr,(k,v) -> v+1);
}
System.out.println(charCount);
发布于 2020-01-27 17:55:08
String str = "Hello Manash";
Map<Character,Long> hm = str.chars().mapToObj(c->
(char)c).collect(Collectors.groupingBy(c->c,Collectors.counting()));
System.out.println(hm);
发布于 2021-11-25 10:16:58
尝试以下方法:
方法1:
String str = "abcaadcbcb";
Map<Character, Integer> charCount = str.chars()
.boxed()
.collect(toMap(
k -> (char) k.intValue(),
v -> 1, // 1 occurence
Integer::sum));
System.out.println("Char Counts:\n" + charCount);
方法2:
String str = "abcaadcbcb";
Map<Character, Integer> charCount = new HashMap<>();
for (char c : str.toCharArray()) {
charCount.merge(c, // key = char
1, // value to merge
Integer::sum); // counting
}
System.out.println("Char Counts:\n" + charCount);
输出:
Char Counts:
{a=3, b=3, c=3, d=1}
发布于 2019-03-13 03:33:47
希望这个帮助: Java 8 Stream & Collector:
String word = "AAABBB";
Map<Character, Integer> charCount = word.chars().boxed().collect(Collectors.toMap(
k -> Character.valueOf((char) k.intValue()),
v -> 1,
Integer::sum));
System.out.println(charCount);
Output:
{A=3, B=3}
https://stackoverflow.com/questions/55129028
复制相似问题