java中有一个字符串A存储内容为字母(包含大小写),字母可重复,长度[150]有一个字符串B存储内容为字母(包含大小写),字母不可重复长度[1<=B=A<=50]求出A中有多少个字母与B中相同(区分大小写),并统计出每种字母相同的个数。
时间: 2024-02-25 08:55:20 浏览: 107
好的,以下是 Java 语言的程序实现:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String A = scanner.nextLine();
String B = scanner.nextLine();
// 统计A中每个字母出现的次数
Map<Character, Integer> counter_A = new HashMap<>();
for (char c : A.toCharArray()) {
counter_A.put(c, counter_A.getOrDefault(c, 0) + 1);
}
// 初始化结果字典
Map<Character, Integer> result = new HashMap<>();
for (char c : B.toCharArray()) {
result.put(c, 0);
}
// 遍历B中的每个字母
for (char c : B.toCharArray()) {
if (counter_A.containsKey(c)) {
result.put(c, counter_A.get(c));
}
}
// 统计总共有多少个字母与B中相同
int total_count = 0;
for (int count : result.values()) {
total_count += count;
}
// 输出结果
System.out.println("A中有" + total_count + "个字母与B中相同");
for (Map.Entry<Character, Integer> entry : result.entrySet()) {
char c = entry.getKey();
int count = entry.getValue();
System.out.println(c + "出现了" + count + "次");
}
}
}
```
这个程序使用了 Java 的 Map 和 Scanner 类来实现功能。首先使用 Map 统计了字符串 A 中每个字母出现的次数,然后遍历了字符串 B 中的每个字母,如果该字母也出现在 A 中,则将其出现次数加入结果 Map 中。最后统计了总共有多少个字母与 B 中相同,并输出了每种字母出现的次数。
阅读全文