日期:2014-05-18  浏览次数:20777 次

读取txt文件找出出现最多的几个字母
读取文件有按字符读取放入字符数组,再从数组中找出出现频率最多的m个字符,
也可以BufferedReader按行读取到String,再从字符串中找出出现频率最多的m个字符。
菜鸟求解答!求代码!

------解决方案--------------------
    public static Map<Character, Integer> freq(String input){
        HashMap<Character, Integer> fq = new HashMap<>();
        while(input.length() > 0){
            char c = input.charAt(0);
            int l1 = input.length();
            input = input.replace(String.valueOf(c),"");
            int l2 = input.length();
            fq.put(c,l1-l2);
        }
        return Collections.unmodifiableMap(fq);
    }

    public static void main(final java.lang.String[] args) {
        System.out.println(freq("adadaefadfgarfaf"));
    }

{f=4, g=1, d=3, e=1, r=1, a=6}
------解决方案--------------------
看见人家贴代码了,就不附上自己的了。
一般软件方面男人做开发,女生做测试。
其实测试感觉最大的好处就是稳定,不用到处跑,也不用每日每夜的加班,男生一般可以克服这两点,所以男生一般做开发。当然,如果你也能做到这两点,也可以的,男女生智力方面的区别很小的,可以忽略。
测试个人感觉最大的缺点就是涨工资涨的慢,当然,如果能做到白盒测试,那收入也是很客观的。
------解决方案--------------------
引用:
引用:

int[] ary = new int[26];

char c; //c为 读入进来的 字符

ary[c-'a'] = ary[c-'a']+1;

排序 最大

另外说一下 如果是面试 不要一上来就说 按行读取 某些文件没有换行符 几个G的字符 就1行 你按行读进来 会很开心的


不好意思,我想问一下 ary[c-'a'] = ary[……


你运行一下

char c='b'  //c为 26个字母的任意一个
System.out.println(c-'a');