要统计字符串中重复字符的出现次数,可以采用以下的方法:
1. 利用Map统计字符出现次数
首先我们可以定义一个Map来存储每个字符出现的次数,然后遍历字符串中每个字符,并通过Map统计该字符的出现次数。
例如以下的Java代码:
public static void countDuplicateChars(String str) {
Map<Character, Integer> charCounts = new HashMap<>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
int count = charCounts.getOrDefault(c, 0);
charCounts.put(c, count + 1);
}
System.out.println(charCounts);
}
上面的代码中,我们定义了一个Map来存储每个字符出现的次数。然后我们遍历字符串中的每个字符,使用Map中的getOrDefault方法获取该字符出现的次数,然后把次数加1并更新到Map中。最后,我们输出Map的内容,就可以得到每个字符出现的次数了。
例如,我们使用以下的代码来测试一下:
countDuplicateChars("hello world");
输出结果为:
{ =1, r=1, d=1, e=1, h=1, l=3, o=2, w=1}
在上面的例子中,我们统计了字符串"hello world"中每个字符出现的次数,然后输出了Map的内容。其中,字符'l'出现了3次,字符'o'出现了2次,其它字符都只出现了1次。
2. 利用数组统计字符出现次数
除了使用Map统计字符出现的次数之外,还可以使用数组来实现。我们可以定义一个长度为256的int数组,并把每个字符的ASCII码作为数组下标,统计每个字符出现的次数。
例如以下的Java代码:
public static void countDuplicateChars(String str) {
int[] charCounts = new int[256];
for (int i = 0; i < str.length(); i++) {
int asciiValue = (int) str.charAt(i);
charCounts[asciiValue]++;
}
for (int i = 0; i < charCounts.length; i++) {
if (charCounts[i] > 1) {
System.out.println((char) i + " appears " + charCounts[i] + " times");
}
}
}
上面的代码中,我们定义了一个长度为256的int数组charCounts,用来存储每个字符出现的次数。然后我们遍历字符串中的每个字符,把该字符对应的ASCII码作为数组下标,把对应的计数器加1。最后,我们再次遍历数组,输出每个重复字符的出现次数。
例如,我们使用以下的代码来测试一下:
countDuplicateChars("hello world");
输出结果为:
l appears 3 times
o appears 2 times
在上面的例子中,我们统计了字符串"hello world"中每个字符出现的次数,然后输出重复字符的出现次数。其中,字符'l'出现了3次,字符'o'出现了2次,其它字符只出现了1次。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java统计字符串中重复字符出现次数的方法 - Python技术站