Конвертировать string в int 32 и хранить Ваш результат

Я разрабатываю игру мультиигрок в Unity используя услуги Google Плаи Гаме Services (GPGS), каждый из игроков, который присоединяется, получает один пойдите игрока посредством GPGS он пойдите это string, который нуждался в том, чтобы обратить в целое число и Ваши элементы сложить их, чтобы получать числовую стоимость каждого пользователя и мочь реализовывать какое-то определенное действие.

Проблема не состоит в том, чтобы конвертировать string в int, уже конвертируется я не могу реализовывать никакого типа операции с ними.

Код, который у меня есть, - следующий:

//Declaración de variables
char[] caracter;
int[] valId;

//Inicialización de variables
caracter = nextParticipantId.ToCharArray();
valId = new int[]{0,0,0,0,0,0,0,0,0,0}

//Sección del código
foreach( char letter in caracter) {
    Debug.Log("La letra es: " + letter);
    Debug.Log("El valor de la letra es: " + Convert.ToInt32(letter));
    valId[i] += Convert.ToInt32(letter);
}

Первый Debug показывает мне букву без проблемы, второй показывает мне Вашу стоимость без какой-либо проблемы также, конфликт, - когда я стараюсь складывать стоимость этих букв.

4
задан 16.06.2016, 05:38
3 ответа

Ты должен использовать Convert.ToInt32 или Int32.Parse, но имей найди, что ты должен хранить результат в другой переменной целого типа, чтобы мочь манипулировать этим.

Пример:

var cadena = "1234";
var numero = Convert.ToInt32(cadena);
numero += 1; // ahora es 1235

Имей в виду, что цепь продолжает быть цепью.

типов Привета

2
ответ дан 24.11.2019, 14:08

Хорошо, никогда я не использовал класс Convert, но делая доказательства с Вашими функциями conversiГіn, встретился с тем, что talvez твоя проблема была следующей:

char Caracter = '3'; // 51 En ASCII ...
int Valor = Convert.ToInt32(Caracter); // Valor actual: 51

, поскольку, когда ты пробуешь конвертировать характер используя Convert, ты берешь Вашу стоимость в таблице символов Американский стандартный код обмена информацией и не nГєmero реально, я рекомендую тебе делать любое из следующих действий:

Беря как пример следующий характер:

char c = '3'; // 51

Менять ее funciГіn на int.Parse(string):

int V = int.Parse(c.ToString()); 

Или реализовывать cast в string прямо в ней funciГіn Convert.ToInt32(object):

int V = Convert.ToInt32(c.ToString());

, Если то, что ты хочешь, состоит в том, чтобы доставать настоящую стоимость характера и не стоимость в таблице Американский стандартный код обмена информацией.


Edit:

Применяя ее soluciГіn к твоей настоящей, одинокой проблеме ты должен менять эту линию:

valId[i] += Convert.ToInt32(letter);

Из-за:

valId[i] += Convert.ToInt32(letter.ToString());

И, смотря немного больше ты cГіdigo, откуда выходит индекс array? SegГєn я вижу, ты используешь цикл foreach, ВїSeguro, что ты не распределяешь всю стоимость в тот же индекс?

Надеялся, что он помог тебе!

1
ответ дан 24.11.2019, 14:08

Проблема, - в котором ты не изменяешь индекс array, который ты используешь:

//Declaración de variables
char[] caracter;
int[] valId;

//Inicialización de variables
caracter = nextParticipantId.ToCharArray();
valId = new int[]{0,0,0,0,0,0,0,0,0,0}

//Sección del código
int i = 0;
foreach( char letter in caracter) {
    Debug.Log("La letra es: " + letter);
    int letra = Convert.ToInt32(letter);
    Debug.Log("El valor de la letra es: " + letra);
    valId[i++] += letra;
}
0
ответ дан 24.11.2019, 14:08

Теги

Похожие вопросы