JAVA - неверный вывод строки

    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
задан 13 August 2018 в 13:29

1 ответ

просто сделайте это смежным:

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

input:

 String str="fweekk";    

input:

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

You были напечатаны только последний символ.

Для достижения того же результата с помощью StringBuilder выполните следующие изменения в строках 3, 17 и 20:

StringBuilder gradeDst = new StringBuilder();

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

return gradeDst.toString();
0
ответ дан 15 August 2018 в 17:05

Другие вопросы по тегам:

Похожие вопросы: