c#实现循环:取提数字字符串 输入字符串x,将其中的数字字符('0'到'9')取出来,再逆向输出 例如输入abc123def45gh123输出32154321输入123abab45输出54321 方法1:迭代 方法2:正则表达式
时间: 2024-09-29 10:09:38 浏览: 50
在 C# 中,可以使用两种方法来实现这个功能:迭代和正则表达式。
**方法1:迭代**
```csharp
using System;
using System.Text;
public class Program
{
public static void Main(string[] args)
{
string x = "abc123def45gh123";
string result = ExtractAndReverseNumbers(x);
Console.WriteLine(result); // 输出:32154321
string x2 = "123abab45";
string result2 = ExtractAndReverseNumbers(x2);
Console.WriteLine(result2); // 输出:54321
}
private static string ExtractAndReverseNumbers(string input)
{
StringBuilder reversedNums = new StringBuilder();
foreach (char c in input)
{
if (char.IsDigit(c))
{
reversedNums.Insert(0, c.ToString());
}
}
return reversedNums.ToString();
}
}
```
**方法2:正则表达式**
```csharp
using System;
using System.Text.RegularExpressions;
public class Program
{
public static void Main(string[] args)
{
string x = "abc123def45gh123";
string result = ReverseDigitsInString(x);
Console.WriteLine(result); // 输出:32154321
string x2 = "123abab45";
string result2 = ReverseDigitsInString(x2);
Console.WriteLine(result2); // 输出:54321
}
private static string ReverseDigitsInString(string input)
{
string numbersOnly = Regex.Replace(input, @"\D", "");
char[] digits = numbersOnly.ToCharArray();
Array.Reverse(digits);
return new string(digits);
}
}
```
以上两个方法都会分别提取输入字符串中的数字,并逆序返回结果。
阅读全文