Duplicaté possible: strong>
Comment puis-je convertir une chaîne en int? p>hi, p>
J'ai le problème suivant convertir la chaîne en integer: p>
xxx pré> donc maintenant string STR contient un seul entiers dedans. Je fais ce qui suit: p>
xxx pré> Je devrais imprimer un entier si j'écris la déclaration suivante à droite? P>
Console.WriteLine(i);
5 Réponses :
C'est tout à fait possible qu'il y ait des espaces blouse là-bas. Essayez de courir quelque chose de ressemblant à couper () (Je ne suis pas sûr de la langue que vous vous trouvez) qui dépendront l'espace blanc. En outre, essayez d'imprimer la chaîne pour vous assurer que vous en avez la bonne partie. Nous avons tous fait cela :) p>
Eh bien, lorsque je tire la chaîne de la console à l'aide de la console.writeline (Str), il imprime un symbole (un smiley fondamentalement) et que je ne pense pas que je ne pense pas y avoir d'autre personnage, à l'exception de l'entier (qui est imprimé comme un smiley). J'utilise C # dans Visual Studio 2005 en passant.
Si la console ne peut pas l'imprimer comme un entier, alors je suppose que ce n'est pas un entier. Je pourrais me tromper ici, mais ma compréhension de cette méthode consiste à convertir une représentation de chaîne d'un entier, disons "1234" dans la représentation entier-DataType de 1234, par exemple quelque chose que vous pourriez faire des mathématiques. Est-ce ce que vous essayez de faire?
FormatException p>
la valeur ne consiste pas en option signe suivi d'une séquence de chiffres (0 à 9). P>
l'exception qui est jetée lorsque la Le format d'un argument ne répond pas les spécifications des paramètres de la Méthode invoquée. P> blockQuote>
Vous pouvez utiliser int32.trypsarse si Vous ne voulez pas générer une exception comme celle-ci. p>
int32.trypsarse strong>: convertit la représentation des chaînes de un nombre à son entier signé 32 bits équivalent. Une valeur de retour indique si l'opération réussit. P> blockQuote>
Plutôt que d'utiliser convert.toint32 (chaîne) code> Vous devez envisager d'utiliser
int32.tryparse (chaîne, sortie int) code> à la place. Les méthodes Tryparse sont là pour vous aider à faire face à une entrée fournie par l'utilisateur de manière plus sûre. La cause la plus probablement de votre erreur est que la sous-chaîne que vous renvoyez a une représentation de chaîne non valide d'une valeur entière.
string str = line.Substring(0,1);
int i = -1;
if (Int32.TryParse(str, out i))
{
Console.WriteLine(i);
}
merci pour le morceau de code..Je vais essayer demain alors que je n'ai pas accès à mon poste de travail en ce moment..voyez mettre à jour la sortie ici demain..qui.
Quel est le raisonnement pour définir I à -1 dans l'exemple fourni? Cela me suggère qu'après une analyse échouée, vous pouvez tester -1 d'une manière ou d'une autre, mais la trypairse définit I à 0 si l'analyse échoue
Il est probable que votre entrée est pas em> un format valide. Essayez cela à la place. Si le nombre n'est pas valide, il devrait émettre une erreur. Gardez à l'esprit que la chaîne doit être constituée d'un signe facultatif suivi d'un nombre. P> string line = "23"; // or whatever.
string str = line.Substring(0,1);
int i = 0;
if (Int32.TryParse(str, out i)) {
Console.WriteLine(i);
} else {
Console.WriteLine ("Error converting '" + line + "', '" + str + "'.");
}
Êtes-vous sûr que la valeur renvoyée dans STR est une INT, définissez un point de débogage si vous utilisez Visual Studio. J'ai eu un sentiment de votre problème peut-être que vous ne retournez pas réellement un entier. Essayez:
line.Trim().Substring(0,1);
La garniture () ne supprimera que les espaces blancheurs de la fin et du début de la chaîne, ce n'est donc pas garanti de résoudre le problème en fonction de la conception de la chaîne d'origine.
Oui, mais comme la sous-chaîne est (0,1), ce serait toujours le début et la fin.
Tagez cela avec la langue que vous utilisez.
Si vous pouvez fournir la valeur de chaîne à l'intérieur de la variable de ligne, il pourrait être beaucoup plus facile de détecter l'erreur.
C'est un duplicata plusieurs fois, s'il vous plaît voir Stackoverflow.com/questions/1019793/... , Stackoverflow.com/questions/952469 / Convert-string-to-int-int , Stackoverflow.com/questions/887586/Convertstring -à-int .