计算 java 中的特定字符
Counting a specific char in java
我想统计某个字符在字符串中出现的次数,在本例中是字符'a'。我知道我可以做到:
import java.util.Scanner;
public class samsJava {
public static void main(String[] args){
String testStr = "Whosebug 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);
}
}
substring
会 return 一个 String
而不是 char
所以改为
if(inputStr.substring(i - 1, i).equals("a")){
方法一更好。
没有 String
会 .equals('a')
一个 char
。您可以使用 .equals("a")
,但我更喜欢 for-each
loop,例如
for(char ch : inputStr.toCharArray()){
if (ch == 'a'){
counterA++;
}
}
你在for循环中要小心:
for (int i = 1; i <= inputStr.length(); i++)
^
或更具可读性:
for (int i = 0; i < inputStr.length(); i++)
和...subString(i, i + 1)
我想统计某个字符在字符串中出现的次数,在本例中是字符'a'。我知道我可以做到:
import java.util.Scanner;
public class samsJava {
public static void main(String[] args){
String testStr = "Whosebug 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);
}
}
substring
会 return 一个 String
而不是 char
所以改为
if(inputStr.substring(i - 1, i).equals("a")){
方法一更好。
没有 String
会 .equals('a')
一个 char
。您可以使用 .equals("a")
,但我更喜欢 for-each
loop,例如
for(char ch : inputStr.toCharArray()){
if (ch == 'a'){
counterA++;
}
}
你在for循环中要小心:
for (int i = 1; i <= inputStr.length(); i++)
^
或更具可读性:
for (int i = 0; i < inputStr.length(); i++)
和...subString(i, i + 1)