【发布时间】:2019-08-03 08:54:11
【问题描述】:
想知道有没有比如下计算给定字符串的字符数更简单的方法?
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);
【问题讨论】:
-
对于 ANSI 字符,您可以只拥有一个大小为 256 的数组并计算它。
-
@vivek_23 那会是哪个ANSI character set?还是您的意思是 ASCII 和 128?
-
@vivek_23 是 Windows 代码页 1252,而不是 ANSI。 Unicode 标准匹配前 256 个代码点的 iso-latin-1 字符集。引用 windows 代码页 1252 是不必要的复杂化,因为该代码页在 128-159 范围内不匹配。
-
@Holger 啊!感谢您的指正。删除了我之前的评论以避免混淆。
标签: java string collections hashmap