JAVA-字符串数组输出不正确 公共静态字符串getGradeDst(字符串输入阵列){ 字符串str=输入阵列; 字符串gradeDst=“”; 整数计数[]=新整数[256]; int len=str.length(); 对于(int i=0;i

JAVA-字符串数组输出不正确 公共静态字符串getGradeDst(字符串输入阵列){ 字符串str=输入阵列; 字符串gradeDst=“”; 整数计数[]=新整数[256]; int len=str.length(); 对于(int i=0;i,java,arrays,string,for-loop,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)]++;

只需将其相邻:

    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;
    }
输入:

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

if (find == 1) {
   System.out.println(gradeDst);  // i added only this line
   gradeDst = str.charAt(i) + ": " + count[str.charAt(i)] + "\n";       
}
 String str="fweekk";    
您只打印了最后一个字符

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

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

您的输入值和预期输出是什么。?您能给出一个预期输出的输入示例吗?我们无法调试我们不知道应该做的事情。输入值和预期输出是什么?为什么?您检查了吗?如果(find==1){gradeDst=str.charAt(i)+“:“+count[str.charAt(i)]+“\n”}这确保只打印A。此外:如果删除if,则只打印最后一个,因为覆盖了数据,而不是附加它们,输入是由A的B的C的D的E和F组成的字符串,其思想是计算这些重复的次数,并使用该类的方法调用它,存储信息,然后打印它。我可以从这个方法内部打印它吗?