【发布时间】:2014-01-15 03:58:06
【问题描述】:
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();
}
假设我有一个名为“john10smith250”的字符串。结果应该是“10250”。但是,我会用我的代码得到“125”。
我过滤掉 0 的原因是因为我不希望任何非数字字符被视为零。
有没有更好的方法将字符串的一部分转换为 int?
【问题讨论】:
-
你明确不计算
'0',所以你不应该对你的结果中没有任何内容感到惊讶......另外,char.IsNumber(char).您错误地使用了 TryParse。如果失败,则返回 false。