C#中如何从字符串中提取数字

时间:2023-01-07 17:02:39
using System.Text.RegularExpressions;
Console.WriteLine("请输入要提取的字符串:");
            string str = Console.ReadLine();
            int number = 0;
            string num = null;
            foreach (char item in str)
            {
                if (item >= 48 && item <= 58)
                {
                    num += item;
                }
            }
            number = int.Parse(num);
            Console.WriteLine(number);


上面那个是提取所有的数字
下面这个只能提起字符串最左边的数字:
Console.WriteLine("请输入一个字符串:");
            string str = Console.ReadLine();
            string number = null;
            foreach (char item in str)
            {
                if (item >= 48 && item <= 58)
                {
                    number += item;
                }
                else
                {
                    break;
                }
            }
            Console.WriteLine(number);


如:输入123123asf 则打印123123
输入123asf123 则打印123
下面是利用正则表达式将字符串中的数字提取出来分别保存在整型数组中
string s = "1 2 3";
MatchCollection vMatchs = Regex.Matches(s, @"(\d+)");
            int[] vInts = new int[vMatchs.Count];
            for (int i = 0; i < vMatchs.Count; i++)
            {
                vInts[i] = int.Parse(vMatchs[i].Value);
            }