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组成的字符串,其思想是计算这些重复的次数,并使用该类的方法调用它,存储信息,然后打印它。我可以从这个方法内部打印它吗?