我想计算某个字符在字符串中出现的次数,在这种情况下,它是字符'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);
}
}
答案 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)