问题描述
在.NET/C#的应用程序编程开发中,当前有需求需要从指定的字符串中查找并提取所数字,比如有如下的给定字符串:
string test = "1 test"
如何使用.NET/C#实现这样的需求呢?
方案一
使用正则表达式Regex
实现,\d+
这个正则表达式即为提取数字的,首先需要引用命名空间System.Text.RegularExpressions.Regex
,然后使用Regex.Match()
方法,具体实现如下:
resultString = Regex.Match(subjectString, @"\d+").Value;
以上结果返回的是字符串中匹配的第一个数字的子字符串,本示例中为:1
,此时,我们还需用将这个子字符串1
转换为数字,可以使用Int32.Parse()
方法,如下:
Int32.Parse(resultString)
方案二
使用Char.IsDigit()
方法,如下:
string a = "str123";
string b = string.Empty;
int val;
for (int i=0; i< a.Length; i++)
{
if (Char.IsDigit(a[i]))
b += a[i];
}
if (b.Length>0)
val = int.Parse(b);
方案三
使用Regex.Split()
方法,可以提取字符串中所有数字的分组,如下:
string input = "There are 4 numbers in this string: 40, 30, and 10.";
string[] numbers = Regex.Split(input, @"\D+");
foreach (string value in numbers)
{
if (!string.IsNullOrEmpty(value))
{
int i = int.Parse(value);
Console.WriteLine("Number: {0}", i);
}
}
输出结果为:Number: 4 Number: 40 Number: 30 Number: 10
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册