C# Int32.Parse Rückgabewert
Sukram
- programmiertechnik
Hallo,
ich möchte einen String in Integer umwandeln. Es kann aber sein, dass der String auch Buchstaben enthält und dann funktioniert das natürlich nicht.
Also habe ich mir überlegt, dass mit einer IF-Abfrage herauszufinden.
if(Int32.Parse(string))
{
Console.WriteLine("Erfolgreich");
}
else
{
Console.WriteLine("Fehler");
}
Jetzt gibt die Parse()-Methode keinen boolschen Wert zurück.
Wie kann ich bewerkstelligen? Gibt es eine Methode, die vorher überprüft, ob der String nur aus Nummern besteht?
Gruß
Sukram
Hello,
Gibt es eine Methode, die vorher überprüft, ob der String nur aus Nummern besteht?
anders herum - es gibt Int32.TryParse.
MfG
Rouven
anders herum - es gibt Int32.TryParse.
Hi,
vielen Dank für Eure Antworten. Das TryParse() hatte ich gesucht. Ich wusste, dass ich das schon mal benutzt habe, bin aber nicht mehr auf die Methode gekommen.
Hatte es zwischenzeitlich mit:
try
{
int number = Int32.Parse(stringtoint);
}
catch (FormatException e)
{
Console.WriteLine("Fehler");
}
gelöst.
Gruß
sukram
Hallo sukram,
Du solltest aus Performancegründen unbedingt die TryParse-Methode verwenden.
Grüße
Hallo sukram,
Du solltest aus Performancegründen unbedingt die TryParse-Methode verwenden.
Grüße
Hallo Karsten,
ich habe sie schon eingebaut :-)
Gruß
Sukram
Hi!
Jetzt gibt die Parse()-Methode keinen boolschen Wert zurück.
Stimmt, wie die Dokumentation verrät, gibt sie den geparsten Integerwert zurück. Und was macht .NET wenn ihm was gegen den Strich geht im Allgemeinen und wie du mit einem fehlerhaften Wert selbst probieren kannst? Es wirft eine Exception. Die kann man abfangen und entsprechend reagieren.
Wie kann ich bewerkstelligen? Gibt es eine Methode, die vorher überprüft, ob der String nur aus Nummern besteht?
Du auch kannst das seit .NET 2.0 existierende int.TryParse() verwenden.
Lo!