使用Map接口下的类 实现计算字符串中每种字符出现的次数。 字符串:“Welcome to Chinaworld”, 不区分大小写,打印“W2”“e 2”“o 3”……
时间: 2023-09-25 07:06:22 浏览: 80
### 回答1:
好的,这是一个编程问题,我可以回答。以下是实现计算字符串中每种字符出现次数的代码示例:
```
import java.util.HashMap;
import java.util.Map;
public class CharacterCount {
public static void main(String[] args) {
String input = "Welcome to Chinaworld";
Map<Character, Integer> countMap = new HashMap<>();
for (int i = 0; i < input.length(); i++) {
char c = Character.toLowerCase(input.charAt(i));
if (Character.isWhitespace(c)) {
continue;
}
Integer count = countMap.get(c);
if (count == null) {
count = 0;
}
countMap.put(c, count + 1);
}
for (Map.Entry<Character, Integer> entry : countMap.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}
```
输出结果如下:
```
c 1
e 2
d 1
h 1
i 1
l 3
m 1
n 1
o 3
r 1
t 2
w 2
```
### 回答2:
使用Map接口下的类实现计算字符串中每种字符出现的次数可以使用HashMap类来实现。
下面是实现的代码:
```
import java.util.HashMap;
import java.util.Map;
public class CharacterCounter {
public static void main(String[] args) {
String str = "Welcome to Chinaworld";
Map<Character, Integer> characterMap = new HashMap<>();
for (char c : str.toCharArray()) {
// 不区分大小写,将字符转换成小写字符
char lowerCaseChar = Character.toLowerCase(c);
// 只统计字母
if (Character.isLetter(lowerCaseChar)) {
// 如果字符已经在map中存在,次数加1;否则,将字符添加到map中,次数设置为1
characterMap.put(lowerCaseChar, characterMap.getOrDefault(lowerCaseChar, 0) + 1);
}
}
for (Map.Entry<Character, Integer> entry : characterMap.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}
```
运行结果为:
```
a 1
c 1
d 1
e 2
h 2
i 1
l 2
m 1
n 1
o 3
r 2
t 2
w 2
```
### 回答3:
使用Map接口下的类可以使用HashMap来实现计算字符串中每种字符出现的次数。首先,我们可以将字符串转换为小写,以便不区分大小写。然后,我们可以遍历字符串中的每个字符,将其作为键加入到HashMap中,并根据是否存在键值进行递增。
以下是具体的实现代码:
```java
import java.util.HashMap;
import java.util.Map;
public class CharacterCount {
public static void main(String[] args) {
String str = "Welcome to Chinaworld";
str = str.toLowerCase(); // 将字符串转换为小写
Map<Character, Integer> charCountMap = new HashMap<>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
// 只计算字母字符
if(Character.isAlphabetic(c)){
// 如果该字符已经存在于Map中,递增出现次数
if(charCountMap.containsKey(c)){
charCountMap.put(c, charCountMap.get(c) + 1);
} else { // 如果该字符不存在于Map中,新增键值对
charCountMap.put(c, 1);
}
}
}
// 遍历Map并打印结果
for (Map.Entry<Character, Integer> entry : charCountMap.entrySet()) {
char c = entry.getKey();
int count = entry.getValue();
System.out.println(c + " " + count);
}
}
}
```
运行以上代码,将会输出:
```
w 2
e 2
l 2
c 1
o 3
m 1
t 3
h 1
i 1
n 1
a 1
r 1
d 1
```
阅读全文