十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
使用java实现打印字符串中字符出现的次数?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
今天在面试时遇到一道算法的题:
给定一个字符串,输出每次字符出现的次数;要求按照顺序输出;
自己的思路开始是:
1.把String转换char数组
2.直接去遍历数组,获取每个字符出现次数,遇到不同时候重新记录
3.把结果用StringBuffer拼接后输出
public class Record { public static void main(String[] args) { System.out.println("直接遍历数组的方法:"+compressStrArray("aaacccddeffgghhhhaa")); } //直接遍历数组拼接,获得对字符记录结果是有序的,但是会出现重复字符的情况,在去修改重复字符逻辑也比较麻烦 public static String compressStrArray(String srcStr) { char[] chars = srcStr.toCharArray(); char c = chars[0]; int i = 0; int a = 0; StringBuffer buffer = new StringBuffer(); for (char aChar : chars) { a++; if (aChar != c) { buffer.append(i).append(c+" "); c = aChar; i=1; }else { i++; } if (a >= chars.length) { buffer.append(i).append(c+" "); } } return buffer.toString(); } }