给定以下 2 个字符串,如何在不使用 regex的情况下从每个字符串中获取第一个整数:
"Result Set 25: 171 companies" => get 25
"Other Text 22 : 140 companies" => get 22
您可以使用 linq 查找第一个数字序列
var digits = input.SkipWhile(c => !Char.IsDigit(c))
.TakeWhile(Char.IsDigit)
.ToArray();
var str = new string(digits);
int i = int.Parse(str);
在尝试解析它以检查输入中是否有任何数字之前,您可能需要检查结果字符串是否为非空。
var result = new string(input.SkipWhile(x=>!char.IsDigit(x))
.TakeWhile(char.IsDigit).ToArray());
//You can apply int.Parse() on the result
不太确定它的效率如何,但它是我在没有 RegEX 的情况下能做到的最好的。
string a = "Result Set 25: 171 companies";
string b = string.Empty;
int val;
for (int i = 0; i < a.Length; i++)
{
if (Char.IsDigit(a[i]))
b += a[i];
else if (b.Length != 0)
break;
}
if (b.Length > 0)
val = int.Parse(b);