计算字符串中的字符出现次数 - Java

时间:2015-07-30 15:55:44

标签: java string find-occurrences

我在编写一个带字符串的方法时遇到问题,并计算第一个字符(或任何字符)出现的次数。我写的代码如下,但由于某种原因,当我运行它时,它会返回正确计数的一半。任何帮助将不胜感激,谢谢。

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.");
}

3 个答案:

答案 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内递增

检查Working of For loop here

  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.");
}