我在编写一个带字符串的方法时遇到问题,并计算第一个字符(或任何字符)出现的次数。我写的代码如下,但由于某种原因,当我运行它时,它会返回正确计数的一半。任何帮助将不胜感激,谢谢。
public static void countOccurrences(String string1) {
int counter = 0;
char toCheck = string1.charAt(0);
char compareChar;
for (int i = 0; i < string1.length(); i++) {
compareChar = string1.charAt(i);
if (toCheck == compareChar) {
counter++;
}
i++;
}
System.out.println(toCheck + " appears " + counter + " times in string1.");
}
答案 0 :(得分:3)
你在每次迭代中递增i
两次,所以你跳过了一半的字符:
for (int i = 0; i < string1.length(); i++) { // i is incremented here
compareChar = string1.charAt(i);
if (toCheck == compareChar){
counter++ ;
}
i++ ; // i is incremented again here - remove this line
}
答案 1 :(得分:0)
你当前的问题是(function($) {
$("#leftColWrapper, #rightColWrapper").wrapAll("<div class=\"colWrapper\" />");
})(jQuery);
每次迭代发生两次。
另一种方法是使用
max-width
为您提供i++;
s.length() - s.replace("x", "").length()
中显示的次数"x"
。可以说它不是最有效的方式,但很明显。
答案 2 :(得分:0)
i ++ in for循环将i值递增1,无需在eloop内递增
public static void countOccurrences(String string1) {
int counter = 0;
char toCheck = string1.charAt(0);
char compareChar;
for (int i = 0; i < string1.length(); i++) {
compareChar = string1.charAt(i);
if (toCheck == compareChar){
counter++ ;
}
}
System.out.println(toCheck + " appears " + counter + " times in string1.");
}