Я работаю над чтением текстового файла, который содержит эту строку строки. И получить его значение для моих целочисленных переменных. Я хочу попытаться избежать использования класса или массивов.Строка IndexOf и подстрока 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)', не является допустимым числом, и когда оно пытается конвертировать, оно терпит неудачу. –