2017-09-21 2 views
-1

Dans une application de console C#, je souhaite convertir un int en chaîne, puis vérifier les caractères dans la nouvelle chaîne et les convertir en int et int. Voilà ce que j'ai jusqu'à présent pour le faire:C#: Conversion int en chaîne et vérification des caractères dans la chaîne

int charNum = 0; 
    int value = 111 
    string valueStr = value.ToString(); 
    int numVariant = valueStr.ToCharArray()[charNum]; 

Puis-je ajouter cette option pour sortir leurs valeurs

Console.WriteLine(numVariant + " " + valueStr + " " + charNum); 
    Console.ReadLine(); 

Et étrangement, il retourne

49 111 0 

Alors que je m'y attendais à le retour est

1 111 0 

Donc, je suppose que quelque chose s'est mal passé avec la conversion du caractère en un int, des suggestions sur la façon de résoudre ce problème?

+0

'int numVariant = valueStr.ToCharArray() [charnum] - '0';' –

+0

double possible de [C# pourquoi ce retour 49: Convertir. ToInt32 ('1')] (https://stackoverflow.com/questions/3665978/c-sharp-why-does-this-return-49-convert-toint321) – Naman

Répondre

1

49 est le caractère de « 1 'valeur décimale ascii. Il stocke cela parce que vous attribuez la valeur à un int32 et le compilateur est automatiquement la valeur. Il suffit de changer:

int numVariant = valueStr.ToCharArray()[charNum]; 

Pour:

char numVariant = valueStr.ToCharArray()[charNum]; 
+0

Cela a fonctionné! Merci beaucoup :) – User2935

1

Remplacer int numVariant = valueStr.ToCharArray()[charNum]; avec int numVariant = int.Parse(valueStr[charNum].ToString());

Sinon, il prend la valeur ASCII de 1

+0

Cela a fonctionné parfaitement, mais s'avère pour ce que je ' m travail, sur une valeur char serait mieux, merci un tas pour la réponse si :) – User2935

+0

Peut-être, mais vos questions dit que vous voulez le convertir en un «int». –

+0

Ouais, c'était mon mauvais, désolé à ce sujet – User2935