A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 董华阳 于 2013-3-11 12:28 编辑

请问如何计算“123256278290”中2的个数?

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

9 个回复

倒序浏览
遍历就好啊。
string str="123256278290";
int n=0;
   foreach (char c in str)
   {
      if (c == '2')
          n++;
   }
回复 使用道具 举报
  1. public static int getSubCount(String str,String key)
  2.         {
  3.                 int count = 0;
  4.                 int index = 0;

  5.                 while((index=str.indexOf(key))!=-1)
  6.                 {
  7.                         str = str.substring(index+key.length());

  8.                         count++;       
  9.                 }
  10.                 return count;
  11.         }
  12. 将"123256278290",和"2"作为实际参数分别传给str和key
复制代码

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 杞文明 于 2013-3-7 19:57 编辑

file:///D:/1.jpg

static void Main(string[] args)
        {
            /*
              思想:我们把要求的字符进行分割, 分割出来的字符数组的长度比我们
               要求的字符出先的个数多一  , 比如要求 "123"这个字符中'2'出现的
               字数 我们分割后的字符数组长度为2, 因为他是把'2'两边分开了 ,因此'2'
                      出现的次数就是:2-1 =1 ,下面的代码可以实现你说的要求
            */
                 int count = 0;   //用来存储你所找的数的个数
            string s = "123256278290";  //初始化
            string[] lines =  s.Split('2'); //字符串分割
            count = lines.Length - 1;      // 求出你要求的个数 ,个数比字符数组长度小 1
                  Console.WriteLine(count);    //输出个数
            Console.ReadKey();
        }

搜狗截图_2013-03-07_19-52-34.jpg (68.96 KB, 下载次数: 37)

搜狗截图_2013-03-07_19-52-34.jpg

点评

有点意思!  发表于 2013-3-7 20:42

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
吕振 发表于 2013-3-7 19:30
遍历就好啊。
string str="123256278290";
int n=0;

这样很好! 呵呵
回复 使用道具 举报
spilt 用2分隔开 得到分组数parts[]减去1就是2的个数

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
//如何计算“123256278290”中2的个数?
class Test
{
        public static void main(String [] args)
        {
                String str="123256278290";
                int count = 0;
                int index = 0;
                String key = "2" ;
                while((index=str.indexOf(key))!=-1)//判断str中有没有2
                {
                       
                                str = str.substring(index+1);//从2之后数赋给str
                                count++;        
                }
                System.out.println(count);
        }
}

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
杞文明 发表于 2013-3-7 19:55
static void Main(string[] args)
        {
            /*

你的编译器是什么?  看着感觉好累啊
回复 使用道具 举报
夏振博 发表于 2013-3-7 20:34
你的编译器是什么?  看着感觉好累啊

VS2012         
回复 使用道具 举报
     我觉得用正则更简单些    代码如下

            string num = "123256278290";
            //定义正则表达式
        string regex = "[2]+";
            //获得多个匹配的值
        MatchCollection matCollection = Regex.Matches(num, regex);
            //打印匹配的个数
        Console.WriteLine(matCollection.Count);
            Console.ReadKey();
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马