Получил ошибку, которую я не понимаю, при добавлении 2 строк массива, преобразованных в int вместе - PullRequest
0 голосов
/ 07 мая 2020

Это обнаруженная мной ошибка: FormatException: входная строка имеет неправильный формат. System.Number.StringToNumber (строка System.String, параметры System.Globalization.NumberStyles, System.Number + NumberBuffer & number, информация о System.Globalization.NumberFormatInfo, System.Boolean parseDecimal) (в <437ba245d8404784b9fbab89b4 *: * 10039ac * Изменить: аргумент 5 4, длинная предыстория, но разделение должно превратить 5 5 в wordX = 5, wordY = 4, а затем сложить их вместе. </p>

string[] numbers = argument.Split(new[] { " " }, System.StringSplitOptions.None);

string wordX = numbers[0];
string wordY = numbers[1];

int numberX = Int32.Parse(wordX);
int numberY = Int32.Parse(wordY);

Debug.Log(numberX + numberY);

Ответы [ 3 ]

0 голосов
/ 07 мая 2020

Я считаю, что строковое значение для ваших wordX и wordY не может быть проанализировано на int. Я бы порекомендовал вам вместо этого использовать TryParse, чтобы избежать исключения.

if(int.TryParse(wordX, out int numberX) &&
   int.TryParse(wordY, out int numberY))
{
   Debug.Log(numberX + numberY);
}
else
{
   // this will let you see why it was failing
   Debug.Log($"Error Parsing: wordX is [{wordX ?? "null"}] and wordY is [{wordY ?? "null"}]");
}
0 голосов
/ 07 мая 2020

Проверьте это:

using System;


string data = "1 2 3 4";
string[] s = data.Split(' ');
int num_X = Convert.ToInt32(s[0]);
int num_Y = Convert.ToInt32(s[1]);
Debug.Log(num_X + num_Y);
0 голосов
/ 07 мая 2020

Код, который у меня работает.

Прежде всего, мы предполагаем, что этот аргумент может быть строкой типа «123 456 789»

Тогда вы можете написать:

string[] numbers = argument.Split();

Наконец, вам нужно только убедиться, что числа (это тип string []) содержат только строки, которые могут быть преобразованы в переменные типа int. Это можно сделать разными способами, например Int.Tryparse или простой блок try-catch (и посмотрите, какая строка дает вам исключение)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...