-4
    public static String getGradeDst(String inputArray) {
    String str = inputArray;
    String gradeDst = "";
    int count[] = new int[256];
    int len = str.length();
    for (int i=0;i < len; i++)
        count[str.charAt(i)]++;
    char ch[] = new char[str.length()];
    for (int i=0; i<len; i++) {
        ch[i] = str.charAt(i);
        int find = 0;
        for (int j = 0; j <= i; j++) {
            if (str.charAt(i) == ch[j])
                find++;
        }
        if (find == 1) {
        gradeDst = str.charAt(i) + ": " + count[str.charAt(i)] + "\n";
        }
    }    
    return gradeDst;
    }

我的问题是我得到了输出总成绩是:
A:5

但没有 B、C、D、E 或 F,我已经绞尽脑汁好几个小时了,但我似乎无法解决问题,任何帮助都会很棒。

4

1 回答 1

0

把这个相邻:

if (find == 1) {
   System.out.println(gradeDst);  // i added only this line
   gradeDst = str.charAt(i) + ": " + count[str.charAt(i)] + "\n";       
}

输入:

 String str="fweekk";    

输出:

f:1
w:1
e:2
k:2

您只打印最后一个字符。

要使用 StringBuilder 获得相同的结果,请在第 3、17 和 20 行进行以下更改:

StringBuilder gradeDst = new StringBuilder();

gradeDst.append(str.charAt(i) + ": " + count[str.charAt(i)] + "\n");

return gradeDst.toString();
于 2018-08-13T13:13:58.970 回答