统计字符串中字符出现次数
程序员文章站
2022-04-30 20:37:00
...
最近好多同学忙着找工作,其中分享出来一道算法题,是找出重复次数最多的元素,忽然想起来教主教过的统计字符串中字符出现次数的算法。记录一下。
思路(只统计ASCII码包含的字符):
ASCII码表一共128个字符。创建一个大小为128的int类型数组array。遍历字符串中的字符,将字符值(128以内)作为array数组的下标,每遇到一个相同的则改下标处的元素值加1。这样就将每个出现过的字符及其次数统计出来,当然遍历array数组可得到出现次数最多的字符。
package com.mec.census.test;
public class FindMaxCountChar {
public static void main(String[] args) {
String str = "axacxagkgkiggggggggggggggg```````````````GUFIXSB2114";
int[] result = new int[128]; //创建数组大小为(128)
char[] charArr = str.toCharArray(); //将字符串转成字符数组
for(int index = 0; index < charArr.length; index++) {
result[charArr[index]]++;
}
Character c = null; //用于保存出现次数最多的字符
int count = 0; //用于保存最高次数
for(int index = 0; index < result.length; index++) {
int sum = result[index];
if(sum > count) {
//获取出现此处最多的字符
count = sum;
c = (char) index;
}
//统计出现了的字符及其次数
if(sum != 0) {
System.out.println("字符\t" + (char)index + "\t出现了[" + sum + "]次");
}
}
System.out.println("出现最多的字符为: \t" + c + " 总共出现了[" + count +"]次");
}
}
结果