C#巧截字符串中的数字

在开发中遇到姓名验证时,不允许在字符中使用数字,这时候需要在字符串中找出数字并替换,怎么找出字符串中的数字呢,这篇文章介绍两种方法。

1、使用ASCII编码巧妙找到数字

处理输入的字符串,可以先遍历这个字符串,然后判断经过编码之后的字符的ASCII码值是否介于48和57之间,如果是则筛选出来。字符串会遍历成char字符了,如果不使用foreach则需要使用CharEnumerator对象的MoveNext方法循环访问字符,然后循环对比。.

string redstr = Console.ReadLine();string outstr = "";string outnum = "";foreach (char item in redstr){    if (item >= 48 && item <= 58)    {        outnum += item;    }    else        outstr += item;}Console.WriteLine($"字符串中的数字:{outnum}");Console.WriteLine($"字符串中的字符:{outstr}");

结果:

C#巧截字符串中的数字

2、使用正则表达式过滤

这个就简单了,代码如下:

   string redstr = Console.ReadLine();string outnum = "";   MatchCollection math = Regex.Matches(redstr, @"(\d+)");   int[] nums = new int[math.Count];   for (int i = 0; i < math.Count; i++)   {       outnum += math[i].Value;       nums[i] = int.Parse(math[i].Value);   }   Console.WriteLine($"字符串中的数字:{outnum}");

结语

    本文介绍了两种找出字符串中数字的二种方法,仅供参考,大家还有啥方法吗,欢迎留言讨论。希望本文对大家学习和工作有一定参考价值,同时欢迎大家留言讨论,谢谢大家的支持。