如何拆分出像"123.45mps","305.5KB"中的数字?请高手帮忙.

解决方案 »

  1.   


            // 获取字符串中的数字 
            public static int GetNumberInt(string str)
            {
                int result = 0;
                if (str != null && str != string.Empty)
                {
                    // 正则表达式剔除非数字字符(不包含小数点.) 
                    str = Regex.Replace(str, @"[^\d.\d]", "");
                    // 如果是数字,则转换为int类型 
                    if (Regex.IsMatch(str, @"^[+-]?\d*[.]?\d*$"))
                    {
                        result = int.Parse(str);
                    }
                }
                return result;
            }
    用这个方法,把你的字符串传进去就是了
      

  2.   

    下面代码可以取出字符串中的数字(包括带小数的数字),字符串中包含多个数字也能取出。
    public static string[] GetNums(string strIn)
    {
        string[] strOut = null;    if (!string.IsNullOrEmpty(strIn))
        {
            MatchCollection mc = Regex.Matches(strIn, @"\d+[.]*\d*");        if (mc.Count > 0)
            {
                strOut = new string[mc.Count];            for (int i = 0; i < mc.Count; i++)
                {
                    strOut[i] = mc[i].Value;
                }
            }
        }    return strOut;
    }
      

  3.   

    public static double GetNumber(string str)
            {
                double result = 0;
                if (str != null && str != string.Empty)
                {
                    // 正则表达式剔除非数字字符(不包含小数点.) 
                    str = Regex.Replace(str, @"[^\d.\d]", "");
                    // 如果是数字,则转换为int类型 
                    if (Regex.IsMatch(str, @"^[+-]?\d*[.]?\d*$"))
                    {
                        result = double.Parse(str);
                    }
                }
                return result;
            }