我是c#的新手,我试图将字符串转换为int。我看过类似的帖子,但没有一个能为我效劳。我仔细检查以确保我想要转换的数据类型是一个字符串,并且字符串确实包含一个没有空格或其他字符的整数。我失去了选择。这是我的字符串的屏幕截图:
我首先从第一个字符串和" 11"中提取了数字。显示我的最终字符串。然后我打印出它的类型以确保它是一个字符串,但是当我使用Convert.ToInt32(驱动程序)它不起作用,我不断得到输入字符串不正确的格式错误。任何帮助表示赞赏。
编辑:
我在下面添加了我正在使用的代码:
Console.WriteLine("Result: {0}", result);
string s = result;
int start = s.IndexOf("[[") + 2;
int end = s.IndexOf("]]", start);
string drivers = s.Substring(start, end - start);
Console.WriteLine(drivers);
Console.WriteLine(drivers.GetType());
int t= Convert.ToInt32(drivers);
答案 0 :(得分:2)
你的问题在这里:
int start = s.IndexOf("[[") + 2;
int end = s.IndexOf("]]", start);
您需要从那里删除"
:
int start = s.IndexOf("[[\"") + 3;
int end = s.IndexOf("\"]]", start);
但是,我强烈建议您使用JSON解析器而不是本手册。
答案 1 :(得分:0)
根据你后来添加的代码,我猜你是从字符串中取出一个整体" 11"使用双引号,这使它成为STRING而不是数字。
结果是
Convert.ToInt32(""11""); //-> Fires Error.
解决方案:
int start = s.IndexOf("[[\"") + 3;
int end = s.IndexOf("\"]]", start);
string drivers = s.Substring(start, end - start);
试试这个。它将返回11而不是" 11"。
他们给你使用JSON解析器的所有建议(例如Json.NET)仍然是一个更好的选择。做你的选择。
如果有帮助,请标记为答案。