Java实现将一个字符里出现最多的字母截取,如,addcbbs变为acs

来源:互联网 发布:手机淘宝怎么上传产品 编辑:程序博客网 时间:2024/05/12 18:16

今天遇到的面试题,回来还是敲敲代码
题目:Java实现将一个字符里出现最多的字母截取,如,addcbbs变为acs

package cn.itchg;/** * Created by CHG on 2017-02-28 22:53. */public class Test {    public static void main(String[] args) {        String str = "addcbbs";        getStringStr(str);    }    private static void getStringStr(String str) {        char[] chars = str.toCharArray(); //将原字符串转为字符数组        int arr[] = new int[26]; //新建大小为26个字母的数组        StringBuffer sb = new StringBuffer();//存结果        //计算每个字符总共出现次数,存入arr的相应位置        for (int i = 0; i < chars.length; i++) {            int  temp = chars[i]-'a';            arr[temp]++;        }        int maxNum = arr[0];        //得到arr中最大的值        for (int j = 0; j <arr.length ; j++) {            if (arr[j] > maxNum)                maxNum = arr[j];        }        //最大值的字符不一定只有1个,还需要遍历chars的每个字符,看是否符合最大值,若不是,则sb.append();        for (int k = 0; k < chars.length;k++) {            for (int l = 0; l < arr.length; l++) {                int temp = chars[k] - 'a';                if (arr[temp] != maxNum) {                    sb.append(chars[k]);                    break;                }            }        }        System.out.println(sb.toString());    }}

输出结果:

acsProcess finished with exit code 0
0 0
原创粉丝点击