JAVA-字符串数组输出不正确

时间:2018-08-13 10:29:37

标签: java arrays string for-loop

    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;
    }

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

但是没有B,C,D,E或F使我绞尽脑汁数小时,但我似乎无法解决该问题,任何帮助都太棒了。

1 个答案:

答案 0 :(得分: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();