📅  最后修改于: 2023-12-03 15:27:49.549000             🧑  作者: Mango
在编程中,我们有时需要从字符串中提取数字。下面提供几种方法,以C#为例:
Regex类是一个用于处理正则表达式的强大工具。使用该类可以很方便地从字符串中提取数字。
using System.Text.RegularExpressions;
string str = "ABC123EFG";
string pattern = @"\d+";
Regex regex = new Regex(pattern);
Match match = regex.Match(str);
if (match.Success)
{
string numStr = match.Value;
int num = int.Parse(numStr);
// num为123
}
解释:
\d
来代表数字,+
表示一个或多个。Regex.Match()
方法从字符串中找到第一个匹配正则表达式的子字符串。Match.Success
判断是否找到了匹配项。Match.Value
获取匹配的字符串。int.Parse
将匹配的字符串转换为整数类型。另一个从字符串中提取数字的方法是使用LINQ。
string str = "ABC123EFG";
string numStr = new string(str.Where(c => char.IsDigit(c)).ToArray());
if (!string.IsNullOrEmpty(numStr))
{
int num = int.Parse(numStr);
// num为123
}
解释:
new string(char[])
构造一个新的字符串对象。int.Parse
将提取出来的数字字符串转换为数字。使用循环也可以从字符串中提取数字。
string str = "ABC123EFG";
string numStr = "";
for (int i = 0; i < str.Length; i++)
{
if (char.IsDigit(str[i]))
{
numStr += str[i];
}
else if (numStr != "")
{
break;
}
}
if (!string.IsNullOrEmpty(numStr))
{
int num = int.Parse(numStr);
// num为123
}
解释:
for
循环遍历字符串中的每个字符。numStr
变量中。numStr
变量中已有数字字符,退出循环。int.Parse
将提取出来的数字字符串转换为数字。以上三种方法各有优缺点,开发者可以根据实际需求选择使用哪种方法。