我正在努力阅读包含这一行字符串的文本文件。并将其值取到我的整数变量..我想尽量避免使用类或数组。String IndexOf和Substring C#
string cont = "[]val1:1val2:0val3:1";
int split = cont.IndexOf("val3:");
int val3 = Int32.Parse(cont.Substring(split + 5)); // this line successfully convert string to int
cont.Remove(split);
Console.WriteLine("Value3: " + val3 + " Content: " + cont);
split = cont.IndexOf("val2:");
int val2 = Int32.Parse(cont.Substring(split + 5)); // LINE 21
cont.Remove(split);
Console.WriteLine("Value2: " + val2 + " Content: " + cont);
split = cont.IndexOf("val1:");
int SilverCoins = Int32.Parse(cont.Substring(split + 5));
cont.Remove(split);
Console.WriteLine("Value1: " + val1 + " Content: " + cont);
当我运行此代码时,出现一个未处理的异常,其中声明Input string was not in a correct format, at System.Int32.Parse(String s), line 21
。 :(
所以,我的期望输出应该是
Value3: 1 Content: []val1:1val2:0
Value2: 0 Content: []val1:1
Value1: 1 Content: []
你可以添加完整的例外到你的问题? – kondrak
你究竟想从字符串中提取什么?许多价值或只是一个特定的价值? – ohiodoug
看起来'cont.substring(split + 5)'返回的值不是有效数字,当它尝试转换时,它失败。 –