我应该如何计算Java中字符串开头的字符出现次数

时间:2011-08-04 13:47:24

标签: java string

我有一个类似于这个,,,foo,bar的字符串,我需要在java的字符串开头计算“,”的数量吗?

7 个答案:

答案 0 :(得分:2)

有一个counter变量来计算出现次数。然后使用String循环遍历整个charAt(i),以获得位置char的{​​{1}}。测试它是否等于i。如果是,则递增charAt(0),如果不是,则counter退出循环。

答案 1 :(得分:1)

看看String javadoc。它包含可用于获取String长度并在特定位置获取字符的方法。

答案 2 :(得分:1)

如果已知起始字符,则构建正则表达式模式并获取第一个组。第一组字符串将包含所需序列的完全匹配,此字符串的长度是结果计数。

答案 3 :(得分:0)

一个简单的循环(while或for)包含一个if,如果为true则应该增加一个计数器的相等条件就足够了。

答案 4 :(得分:0)

这种快速解决方案对我有用。

public static void main(String[] args)
{
    String s = ",,,foo,bar";
    int count = 0;
    for (int i = 0; i < s.length() ; i++) {
        if (s.charAt(i) != ',')
            break;
        count++;
    }

    System.out.println("count " + count);
}

更新:刚刚意识到你只需要计算字符串开头的','而不是中间数。我已经更新了代码来做到这一点。

答案 5 :(得分:0)

如果您不想使用任何外部罐子,只需编写一个简单的函数:

public static int countAtBegin(String str, char c) {
    for (int ret = 0; ret < str.length(); ret++) {
        if (str.charAt(ret) != c)
            return ret;
    }
    return str.length();
}

答案 6 :(得分:0)

您也可以使用regexp:

public static int countCommasAtBegin(String str) {
    Matcher commas = Pattern.compile("^,*").matcher(str);
    if (commas.find()) {
        return commas.group().length();
    } else {
        return 0;
    }
}

但是对于这样简单的任务,我更喜欢使用简单的循环。