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使我绞尽脑汁数小时,但我似乎无法解决该问题,任何帮助都太棒了。
答案 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();