首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个字符串中相同的字符

一个字符串中相同的字符
EN

Stack Overflow用户
提问于 2013-09-06 06:55:39
回答 8查看 1.1K关注 0票数 1

我需要知道同一类型的字符在一个字符串中有多少个。

我试过这个

代码语言:javascript
复制
String x ="(3+3)*(4-2)";
int a = x.indexOf( "(" );

但这只给了我第一个指数

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-09-06 07:07:25

似乎最好把它放在一个单独的函数中:

代码语言:javascript
复制
// accepts a string and a char to find the number of occurrences of
public static int get_count(String s, char c) {    

    int count = 0;                        // count initially 0

    for (int i = 0; i < s.length(); i++)  // loop through the whole string
        if (s.charAt(i) == c)
            count ++;                     // increment every time an occurrence happens

    return count;                         // return the count in the end

}

你可以这样称呼它:

代码语言:javascript
复制
System.out.println(get_count("(3+3)*(4-2)", '('));

// Output: 2
票数 0
EN

Stack Overflow用户

发布于 2013-09-06 07:03:10

您可以使用循环并使用其他方法indexOf(int, int)

代码语言:javascript
复制
String x ="(3+3)*(4-2)";
int a = x.indexOf( "(" );

while (a >= 0) {
    System.out.println("Char '(' found at: "+a);
    a = x.indexOf('(', a+1);
}
票数 1
EN

Stack Overflow用户

发布于 2013-09-06 06:57:23

使用StringUtils.countMatches

代码语言:javascript
复制
StringUtils.countMatches(value,"(");

代码语言:javascript
复制
public static int countMatches(String value, String valueToCount) {
          if (value.isEmpty() || valueToCount.isEmpty()) {
                return 0;
            }
            int count = 0;
            int index = 0;
            while ((index = value.indexOf(valueToCount, index)) !=  -1) {
                count++;
                index += valueToCount.length();
            }
            return count;
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18651704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档