JAVA给一个字符串 计算字母出现的次数 给定一个字符串计算每个字母出现的次数
时间: 2023-11-10 20:05:25 浏览: 37
可以使用一个数组来存储每个字母出现的次数。首先初始化数组,然后遍历字符串,对于每个字母在数组中对应位置的计数器加一,最后输出每个字母和对应的出现次数即可。以下是一个简单的JAVA函数实现:
```
public static void countLetters(String str) {
int[] counter = new int[26]; //26个字母
str = str.toLowerCase(); //不区分大小写
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 'a' && c <= 'z') {
counter[c - 'a']++; //对应字母计数器加一
}
}
for (int i = 0; i < 26; i++) {
if (counter[i] > 0) {
System.out.println((char) (i + 'a') + ": " + counter[i] + "次");
}
}
}
```
相关问题
用Java写一个:1、给一个字符串,计算字母出现的次数 2、给定一个字符串,计算每个字母出现的次数
很高兴回答您的问题!对于第一个问题,以下是Java代码示例:
```java
public static void countLetters(String str) {
int[] freq = new int[26];
str = str.toLowerCase();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 'a' && c <= 'z') {
freq[c-'a']++;
}
}
for (int i = 0; i < 26; i++) {
if (freq[i] > 0) {
System.out.println((char)('a'+i) + ": " + freq[i]);
}
}
}
```
对于第二个问题,以下是Java代码示例:
```java
public static void countLetters(String str) {
Map<Character, Integer> freqMap = new HashMap<>();
str = str.toLowerCase();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 'a' && c <= 'z') {
freqMap.put(c, freqMap.getOrDefault(c, 0) + 1);
}
}
for (Map.Entry<Character, Integer> entry : freqMap.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
```
希望这些代码对您有所帮助!
java算法给定一个小写字母的字符串,返回字典顺序最小的回文字符串
可以使用贪心算法来解决这个问题。首先,可以统计每个字符出现的次数,然后将出现次数为奇数的字符放在回文字符串的中心位置。接下来,将剩余的偶数次数的字符分别从左右两侧开始插入,保证插入的字符的字典序最小。
具体实现步骤如下:
1. 统计每个字符的出现次数。
2. 找到第一个出现次数为奇数的字符,将其放在回文字符串的中心位置。
3. 对于剩下的偶数次数的字符,按照字典序从小到大依次插入回文字符串的左右两侧。
4. 构造出回文字符串并返回。
以下是Java代码实现:
```java
public static String minPalindrome(String s) {
int[] count = new int[26];
for (char c : s.toCharArray()) {
count[c - 'a']++;
}
StringBuilder sb = new StringBuilder();
char center = ' ';
for (int i = 0; i < 26; i++) {
if (count[i] % 2 == 1) {
center = (char) ('a' + i);
}
for (int j = 0; j < count[i] / 2; j++) {
sb.append((char) ('a' + i));
}
}
String left = sb.toString();
String right = new StringBuilder(left).reverse().toString();
return left + (center == ' ' ? "" : center) + right;
}
```
例如,对于输入字符串 "abcbcbdbdbdbdedededededcbcbcb",该算法会输出 "abcdededcbcbdedbdbcbcb"。