您的位置:首页 > 编程语言 > Java开发

java统计字符串中重复【单个】字符的次数频次-使用字符数组实现

2017-12-17 20:10 615 查看
思路:单个字符char的编码可以直接用做int值作为数组索引,遍历字符串,字符数组[字符编码的int值]自增,貌似不是很完善

public class Test {

public static void main(String[] args) {

String str = "sdfjklsajfoiwernjkwnerkwndfs";
count(str);
String str2 = "你我他他他我是好的你说是我";
count(str2);
}

public static void count(String str) {
System.out.println("待统计字符:" + str);
System.out.println("字符数组统计");
char[] count = new char[50000];//【考虑字符编码的最大值】

for (int i = 0; i < str.length(); i++) {
count[str.charAt(i)] = (char) (count[str.charAt(i)] + 1);//str.charAt(i)返回的char直接作为索引

}
toenum(count);
}

public static void toenum(char[] count) {

for (int i = 0; i < count.length; i++) {
if (count[i] > 0) {
char c = (char) i;//int转char
int ci = count[i];//char转int
System.out.println("字符:" + c + " 编码:" + i + " 频次:" + ci);
}
}
}

}


然后把count字符数组存入map,再转list排序,

参考:java【通用】统计字符串中重复【单个】字符的次数频次并输出重复最多的次数和字符

不能使用Arrays.sort(count)(只对值排序,破坏索引)

可以遍历转存list排序,过滤掉无用的数组
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐