Freigeben über


Gewusst wie: Konvertieren einer Zeichenfolge in einen ganzzahligen Typ (C#-Programmierhandbuch)

Aktualisiert: November 2007

Anhand dieser Beispiele werden verschiedene Methoden zur Konvertierung eines string-Typs in einen int-Typ veranschaulicht. Eine solche Konvertierung kann z. B. beim Erhalt numerischer Eingaben von einem Befehlszeilenargument nützlich sein. Ähnliche Methoden stehen zur Konvertierung von Zeichenfolgen in andere numerische Typen zur Verfügung, darunter float und long. Einige dieser Methoden werden in der unten stehenden Tabelle aufgelistet.

Numerischer Typ

Methode

decimal

ToDecimal(String)

float

ToSingle(String)

double

ToDouble(String)

short

ToInt16(String)

long

ToInt64(String)

ushort

ToUInt16(String)

uint

ToUInt32(String)

ulong

ToUInt64(String)

Beispiel

In diesem Beispiel wird die ToInt32(String)-Methode aufgerufen, um die Zeichenfolge "29" in einen int-Typ zu konvertieren. Anschließend wird dem Ergebnis 1 hinzugefügt, und die Ausgabe wird gedruckt.

int numVal = Convert.ToInt32("29");
numVal++;

Console.WriteLine(numVal);
// Output: 30

Eine weitere Möglichkeit zur Konvertierung von string in int besteht in der Verwendung der Parse-Methode oder der TryParse-Methode der System.Int32-Struktur. Die ToUInt32-Methode verwendet Parse intern. Wenn das Format der Zeichenfolge nicht gültig ist, gibt Parse eine Ausnahme aus. TryParse gibt keine Ausnahme aus, sondern gibt den Wert false zurück. Die unten stehenden Beispiele zeigen erfolgreiche sowie nicht erfolgreiche Aufrufe von Parse und TryParse.

int numVal = Int32.Parse("-105");
Console.WriteLine(numVal);
// Output: -105
int j;
Int32.TryParse("-105", out j);
Console.WriteLine(j);
// Output: -105
try
{
    int m = Int32.Parse("abc");
}
catch (FormatException e)
{
    Console.WriteLine(e.Message);
}
// Output: Input string was not in a correct format.
string inputString = "abc";
int numValue;
bool parsed = Int32.TryParse(inputString, out numValue);

if (!parsed)
    Console.WriteLine("Int32.TryParse could not parse '{0}' to an int.\n", inputString);

// Output: Int32.TryParse could not parse 'abc' to an int.

Siehe auch

Aufgaben

Gewusst wie: Bestimmen, ob eine Zeichenfolge einen numerischen Wert darstellt (C#-Programmierhandbuch)

Referenz

Typen (C#-Programmierhandbuch)