在开发中遇到姓名验证时,不允许在字符中使用数字,这时候需要在字符串中找出数字并替换,怎么找出字符串中的数字呢,这篇文章介绍两种方法。
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}");
结果:
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}");
结语
本文介绍了两种找出字符串中数字的二种方法,仅供参考,大家还有啥方法吗,欢迎留言讨论。希望本文对大家学习和工作有一定参考价值,同时欢迎大家留言讨论,谢谢大家的支持。