📅  最后修改于: 2023-12-03 15:13:50.344000             🧑  作者: Mango
在C#编程中,有时我们需要从字符串中获取数字并进行加减乘除等运算。本文将介绍获取数字的几种常见方法。
我们可以使用int.Parse()方法将字符串转换为整型数字。
string str = "123";
int num = int.Parse(str);
这里的字符串为"123",使用int.Parse()方法将其转换为整型数字,存储在num变量中。
但是,如果字符串中包含非数字字符,则会抛出异常。所以我们需要先判断字符串是否为数字类型,才能进行转换。
try {
string str = "123abc";
int num = int.Parse(str);
}
catch (FormatException ex) {
Console.WriteLine("字符串不是数字类型,转换失败!错误信息:{0}", ex.Message);
}
如果我们不想使用异常处理来判断字符串是否为数字类型,可以使用int.TryParse()方法。它会返回一个bool值,表示转换是否成功。
string str = "123abc";
int num;
bool result = int.TryParse(str, out num);
if (result) {
Console.WriteLine("转换成功,num的值为{0}", num);
}
else {
Console.WriteLine("字符串不是数字类型,转换失败!");
}
除了使用方法,我们还可以使用正则表达式提取字符串中的数字。
string str = "abc123def456ghi789";
string pattern = @"\d+";
MatchCollection matches = Regex.Matches(str, pattern);
foreach (Match match in matches) {
Console.WriteLine("找到数字:{0}", match.Value);
}
这里的正则表达式为"\d+",代表匹配至少一个数字。MatchCollection返回所有匹配到的数字。
我们可以使用LINQ来从字符串中获取数字。
string str = "abc123def456ghi789";
var numArray = str.Where(c => char.IsNumber(c)).ToArray();
int[] nums = Array.ConvertAll(numArray, c => (int)Char.GetNumericValue(c));
foreach (var num in nums) {
Console.WriteLine("找到数字:{0}", num);
}
这里的代码使用了Where和ToArray方法来筛选字符数组中的数字,再使用ConvertAll将字符数组转换为整型数组。