【发布时间】:2015-04-09 17:48:21
【问题描述】:
我在完成这段代码时遇到了一些困难。基本上,我必须计算一个字母出现在给定字符串中的次数。例如,ABA 应该输出以下内容
"A appears 1 times"
"B Appears 1 times"
"A Appears 1 times"
但是我编写的以下代码执行以下操作(它是方法的一部分)
public static char[] counter(char[] original, char[] manipulated) {
int counter =0;
for (int i=0; i<manipulated.length; i++) {
for (int j=0; j<original.length; j++) {
if (original[j] == manipulated[i]) {
counter++;
} else {
}
}
System.out.println(manipulated[i] + " appears " + counter + " times");
counter = 0;
}
return manipulated;
}
输出是这样的:
"A appears 2 times"
"B appears 1 times"
"A appears 2 times"
这没有错,但这不是我想要的。所以请您尽快协助我解决这个问题。我知道我想重置一些变量,但我不确定在哪里实际重置它。
*一些注意事项: 操纵的变量只是不包含重复项的字符串,所以 原始将是 abaa,操纵将是 aba :)
【问题讨论】:
-
“这没有错,但这不是我想要的”——你想要它怎么样?
-
你描述它的方式是你想要的方式,它只是一个迭代字符数组并打印它出现的问题(因为它暗示每次你看到它都会出现一次)。否则,最好通过为您看到的每个 unique 字符增加一个计数器来计算字符数,这样您就不会多次打印重复字符的计数。
-
@alfasin 我想要这样。如果输入为“AABA”,则应显示“A 出现 2 次,B 出现 1 次,A 出现 1 次”。我的代码的方式是打印出“A 出现 3 次,B 出现 1 次,A 出现 3 次”
标签: java string count duplicates