Comment convertir une chaîne en entier en C #?
Comment convertir une chaîne en entier en C #?
Réponses:
Si vous êtes sûr que l'analyse sera correcte, utilisez
int.Parse(string)
Si ce n'est pas le cas, utilisez
int i;
bool success = int.TryParse(string, out i);
Mise en garde! Dans le cas ci-dessous, i
sera égal à 0 et non à 10 après le TryParse
.
int i = 10;
bool failure = int.TryParse("asdf", out i);
C'est parce que TryParse
utilise un paramètre out , pas un paramètre ref .
int myInt = System.Convert.ToInt32(myString);
Comme plusieurs autres l'ont mentionné, vous pouvez également utiliser int.Parse()
et int.TryParse()
.
Si vous êtes certain que le string
sera toujours un int
:
int myInt = int.Parse(myString);
Si vous souhaitez vérifier si string
c'est vraiment une int
première:
int myInt;
bool isValid = int.TryParse(myString, out myInt); // the out keyword allows the method to essentially "return" a second value
if (isValid)
{
int plusOne = myInt + 1;
}
string varString = "15";
int i = int.Parse(varString);
ou
int varI;
string varString = "15";
int.TryParse(varString, out varI);
int.TryParse
est plus sûr car si vous mettez quelque chose d'autre varString
(par exemple "fsfdsfs"), vous obtiendrez une exception. En utilisant int.TryParse
when string ne peut pas être converti en int, il retournera 0
.
Si vous êtes sûr d'avoir un nombre "réel" dans votre chaîne, ou si vous êtes à l'aise avec toute exception qui pourrait survenir, utilisez ceci.
string s="4";
int a=int.Parse(s);
Pour plus de contrôle sur le processus, utilisez
string s="maybe 4";
int a;
if (int.TryParse(s, out a)) {
// it's int;
}
else {
// it's no int, and there's no exception;
}
Faites quelque chose comme:
var result = Int32.Parse(str);
4 techniques sont ici comparées.
Le moyen le plus rapide s'est avéré être le suivant:
y = 0;
for (int i = 0; i < s.Length; i++)
y = y * 10 + (s[i] - '0');
"s" est votre chaîne que vous souhaitez convertir en un entier. Ce code suppose que vous n'aurez aucune exception lors de la conversion. Donc, si vous savez que vos données de chaîne seront toujours une sorte de valeur int, le code ci-dessus est le meilleur moyen d'aller à la vitesse pure.
À la fin, "y" aura votre valeur int.
bool result = Int32.TryParse(someString, out someNumeric)
Cette méthode essaiera de convertir someString
en someNumeric
et retournera un result
dépend de la réussite de la conversion, du succès de la true
conversion et de l' false
échec de la conversion. Notez que cette méthode ne lèvera pas d'exception si la conversion a échoué comme la Int32.Parse
méthode l'a fait et qu'elle renvoie à la place zéro pour someNumeric
.
Pour plus d'informations, vous pouvez lire ici:
https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2
&
Comment convertir une chaîne en entier en C #