【问题标题】:Counting a specific char in java在java中计算一个特定的字符
【发布时间】:2015-06-19 11:12:37
【问题描述】:

我想计算某个字符在字符串中出现的次数,在本例中是字符“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);

}
        }

【问题讨论】:

  • 请详细说明您需要帮助的具体问题。

标签: java indexing char substring counting


【解决方案1】:

substring 将返回 String 而不是 char

所以换成

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

方法一更好。

【讨论】:

  • 哦,该死的,我用的是 (' ') ,它是为字符保留的,而 (" ") 是为字符串保留的。谢谢
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    你必须小心 for 循环:

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

    或更具可读性:

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

    【讨论】:

    • 这是一个正确答案,他忽略了最后一个字符!!感谢您的反对....
    • 你是对的 (+1)。由于格式的原因,它可能被否决了。
    猜你喜欢
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    • 2014-01-30
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多