📜  返回字符串上的每个数字 c# (1)

📅  最后修改于: 2023-12-03 14:57:56.346000             🧑  作者: Mango

返回字符串上的每个数字 C#

在C#中,要想返回字符串上的每个数字,可以使用一些内置的函数和技巧。本篇文章将介绍几种常见的方法。

1. 使用Char.IsDigit()方法

Char.IsDigit()方法可以判断一个字符是否为数字字符,是则返回True,否则返回False。可以遍历字符串中的每个字符,对其应用此方法来获得所有数字字符。

string str = "abc123def456";
for (int i = 0; i < str.Length; i++)
{
    if (Char.IsDigit(str[i]))
    {
        Console.WriteLine(str[i]);
    }
}

输出:

1  
2  
3  
4  
5  
6  
2. 使用正则表达式

正则表达式是一种用来匹配字符串的表达式。使用正则表达式可以快速识别字符串中的数字,无需编写循环逐个字符判断。

使用Regex.Matches()方法查找字符串中的所有数字,该方法将返回一个MatchCollection对象,其中包含了所有匹配的结果。可以遍历这个集合获取所有数字的字符串。

string str = "abc123def456";
string pattern = @"\d+";
MatchCollection match = Regex.Matches(str, pattern);
foreach (Match m in match)
{
    Console.WriteLine(m.Value);
}

输出:

123  
456  
3. 使用LINQ查询

在C#中,可以使用LINQ(语言集成查询)查询字符串中的数字。使用Where()方法筛选出所有数字字符,然后使用Select()方法将其转换为字符类型。最后,使用ToList()方法将转换后的结果存储到列表中。

string str = "abc123def456";
List<char> nums = str.Where(c => Char.IsDigit(c)).Select(c => c).ToList();
foreach (char num in nums)
{
    Console.WriteLine(num);
}

输出:

1  
2  
3  
4  
5  
6  
总结

这篇文章介绍了三种常见的方法来获取字符串上的所有数字。使用Char.IsDigit()方法可以手动遍历每个字符,使用正则表达式可以快速匹配所有数字,使用LINQ查询则更加简洁。根据实际需求选择合适的方法来获得最佳体验。