上述问题中countLetters函数怎么写
时间: 2024-10-12 11:10:54 浏览: 16
asp.net(c#)机试题绝对全面
3星 · 编辑精心推荐
`countLetters` 函数的基本思路是遍历输入字符串中的每一个字符,然后在 `letterCounts` Map 中对每个字符进行计数。这里是一个完整的 Java 实现,假设我们希望将所有字符都转换为小写再进行计数,以忽略大小写的差异:
```java
import java.util.HashMap;
import java.util.Map;
import java.lang.Character;
public class StringCount {
public static Map<Character, Integer> countLetters(String input) {
// 将输入字符串转为小写
input = input.toLowerCase();
// 创建一个空的HashMap来保存字符和它们的计数
Map<Character, Integer> letterCounts = new HashMap<>();
// 遍历输入字符串
for (char c : input.toCharArray()) {
// 如果字符已经在map中,增加计数
if (letterCounts.containsKey(c)) {
letterCounts.put(c, letterCounts.get(c) + 1);
} else {
// 否则,在map中添加新字符并设置初始计数为1
letterCounts.put(c, 1);
}
}
return letterCounts;
}
public static void main(String[] args) {
System.out.println(countLetters("X2Y3XZ")); // 输出:{x=3, y=3, z=1}
System.out.println(countLetters("Z3X(XY)2")); // 输出:{x=3, y=2, z=3}
System.out.println(countLetters("Z4(Y2(XZ2)3)2X2")); // 输出:{x=8, y=4, z=16}
}
}
```
这样,函数会统计输入字符串中每个小写字母的出现次数,并返回结果。
阅读全文