static void Main(string[] args)
{
string foo = "jason123x40";
char[] foo2 = foo.ToCharArray();
string foo3 = "";
for (int i = 0; i < foo2.Length; i++)
{
int num = 0;
Int32.TryParse(foo2[i].ToString(), out num);
if (num != 0)
{
foo3 += num.ToString();
}
}
Console.WriteLine(foo3);
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
所以假设我有一个名为"john10smith250"的字符串.结果应为"10250".但是我会用我的代码获得"125".
我过滤掉0的原因是因为我不希望任何非数字字符被视为零.
有没有更好的方法将字符串的一部分转换为int?
使用LINQ:
var myString = "john10smith250";
var myNumbers = myString.Where(x => char.IsDigit(x)).ToArray();
var myNewString = new String(myNumbers);
Run Code Online (Sandbox Code Playgroud)