解析为int时,输入字符串格式错误

时间:2017-05-16 11:08:50

标签: c#

我收到错误"输入字符串格式不正确"解析为int时。 但字符串格式正确。我在下面添加了截图。

enter image description here

4 个答案:

答案 0 :(得分:1)

我注意到你正在做多次转换。您确定它是导致错误的(" 2016")吗? 如果是,则必须有其他人建议的隐藏字符。 a.substring(0,4)确实会删除任何尾随字符。但如果第一个字符是隐藏的字符,则不会。

string output = new string(input.Where(c => char.IsLetter(c) || char.IsDigit(c)).ToArray());

应清除任何可能隐藏的字符。

答案 1 :(得分:1)

也许你可以尝试这样的事情:

int x = Convert.ToInt32(a);

此外,您可以尝试使用.ToString()的{​​{1}} Methode使其运行更稳定。

您可以另外尝试使用Rexex清除所有“非数字”字符中的字符串:

a

按如下方式使用以清除:

/// <summary>
/// RegEx to extract all non numeric values.
/// </summary>
private static readonly Regex rxNonDigits = new Regex(@"[^\d.,-]+");

答案 2 :(得分:1)

问题是你的int.Parse(a.Substring 0,4)字符串变量中必定有一些隐藏字符(可能是回车符?)。请尝试{{1}},因为它们通常位于字符串的末尾。

您还可以清除从中获取该值的输入。

答案 3 :(得分:1)

我认为您正在使用带有JSON的REST API或在查询字符串中传递整个字符串,即JSON formatted string,那么您应该使用

a = new JavaScriptSerializer().Deserialize(a, null).ToString();
x = int.Parse(a);