在java中计算特定的char

时间:2015-04-14 00:30:34

标签: java indexing char substring counting

我想计算某个字符在字符串中出现的次数,在这种情况下,它是字符'a'。我知道我可以这样做:

import java.util.Scanner;
public class samsJava {
public static void main(String[] args){

String testStr = "StackoverFlow Guess I'll Test The o's";
int counter = 0;
for (int i = 0; i<testStr.length(); i++ ){
    if(testStr.charAt(i) == ('o')){
        counter++;
    }
}
System.out.println("Number of o's:" + counter);
    }
}

但我在这里做错了什么:

import java.util.Scanner;
public class samsJava {
public static void main(String[] args){

    System.out.println("Enter String:");

    Scanner input = new Scanner(System.in);
    String inputStr = input.nextLine();
    int counterA = 0;

for(int i = 1; i<inputStr.length(); i++){
    if(inputStr.substring(i - 1, i).equals('a')){
    counterA++;
        }
    }
System.out.println("number of a's:" + counterA);

}
        }

3 个答案:

答案 0 :(得分:1)

substring将返回String而不是char

所以改为

if(inputStr.substring(i - 1, i).equals("a")){

方法一虽然好一些。

答案 1 :(得分:1)

String.equals('a')一个char。您可以使用.equals("a"),但我更喜欢for-each loop之类的

for(char ch : inputStr.toCharArray()){
    if (ch == 'a'){
        counterA++;
    }
}

答案 2 :(得分:0)

在for循环中你必须要小心:

for (int i = 1; i <= inputStr.length(); i++)
                  ^

或更具可读性:

for (int i = 0; i < inputStr.length(); i++)和... subString(i, i + 1)