编写一个java程序,随机生成一个长度为n的字符串,统计该字符串每个字符出现的次数
时间: 2024-05-15 07:15:54 浏览: 120
```
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
public class CountCharacters {
public static void main(String[] args) {
int n = 10; // 字符串长度
String str = generateRandomString(n);
System.out.println("随机生成的字符串:" + str);
Map<Character, Integer> map = countCharacters(str);
System.out.println("每个字符出现的次数:");
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
/**
* 生成一个长度为n的随机字符串
* @param n 字符串长度
* @return 随机字符串
*/
public static String generateRandomString(int n) {
StringBuilder sb = new StringBuilder();
Random random = new Random();
for (int i = 0; i < n; i++) {
char c = (char) ('a' + random.nextInt(26)); // 生成随机小写字母
sb.append(c);
}
return sb.toString();
}
/**
* 统计字符串中每个字符出现的次数
* @param str 统计的字符串
* @return 字符出现次数的Map
*/
public static Map<Character, Integer> countCharacters(String str) {
Map<Character, Integer> map = new HashMap<>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (map.containsKey(c)) {
map.put(c, map.get(c) + 1); // 字符已经出现过,次数加1
} else {
map.put(c, 1); // 字符第一次出现,次数为1
}
}
return map;
}
}
```
阅读全文