设计一个组件,其对外接口有一个方法,用来统计所传的字符串参数的数字字符个数,并将结果返回;有两个属性:一个为布尔型,用来标识字符串中是否有数字字符,另一个为整型,用以记载整个字符串的长度。

解决方案 »

  1.   

    using System;
    using System.Text.RegularExpression;class  NumCounter
    {
         string str="";     
         public int StrLength{get{return str.Length;}}//字符串的长度
         public bool HasNum{get{return GetNumCount()>0?true:false;}} //如果数字数大于0则为真     public NumCounter(string input) //构造函数  传入一个字符串
         {
           str=input;
         }
         public int GetNumCount()  //返回字符串中的数字个数
         {
             Regex r=new Regex("[0-9]{1}");//正则表达式
             return r.Matches(str).Count;//有几个匹配就有多少个数字
         }
    }
      

  2.   

    参考了一下楼上老兄的代码写的:
    using System;
    using System.Collections.Generic;
    using System.Text;namespace 统计一个字符串中的数字个数
    {
        class Program
        {
            static void Main(string[] args)
            {
                CountNumber CN = new CountNumber("abc123");
                if (CN.HasNumber)
                    Console.WriteLine("数字个数为:{0}",CN.Count());
                else
                    Console.WriteLine("对不起,没有数字!");
                Console.WriteLine("字符串的长度为:{0}",CN.leng);
            }
        }
        class CountNumber
        {
            string str;
            public bool HasNumber
            {
                get 
                {
                    if (Count()== 0)
                        return false;
                    else
                        return true;
                }
            }
            public int leng
            {
                get 
                {
                    return str.Length;
                }
            }
            public CountNumber(string s)
            {
                str = s;
            }
            public int Count()
            {
                int n=0;
                for (int i = 0; i < str.Length; i++)
                {
                    if (str[i] >= '0' && str[i] <= '9')
                    {
                        n++;
                    }
                }
                return n;
            }
        }
    }