Wie konvertiert man eine Zeichenfolge in Int in C#

  1. C# String nach int Konvertierung - Int16.Parse() / Int32.Parse() / Int64.Parse() Methode
  2. C# String nach Int Konvertierung - Int16.TryParse() / Int32.TryParse() / Int64.TryParse() Methode
  3. C# String nach Int Konvertierung - Konvertieren.ToInt16() / Konvertieren.ToInt32() / Konvertieren.ToInt64() Methode

Die Konvertierung einer String in int ist ein Kinderspiel, wenn es um die Codierung in C# geht, aber es gibt bestimmte Dinge, die Sie beachten müssen. In diesem Artikel werden wir einige der einfachsten und empfohlenen Methoden zur Erreichung dieses Ziels behandeln.

C# String nach int Konvertierung - Int16.Parse() / Int32.Parse() / Int64.Parse() Methode

Die Methode Parse() kann verwendet werden, um eine Zeichenkettendarstellung einer Zahl in eine äquivalente 16/32/64-Bit-Ganzzahl mit Vorzeichen umzuwandeln. Aus Darstellungszwecken werden wir von hier an nur noch 32-Bit-Konvertierungen behandeln.

using System;

public class Instance{
    public static void Main(){
        string str_var = "123";
        int num_var = Int32.Parse(str_var);
        System.Console.WriteLine(num_var);
    }
}

Ausgabe:

123

Ein kleiner Nachteil dieser Methode ist, dass sie eine FormatException auslöst, wenn die Zeichenkette keine Ziffernfolge ist.

Obwohl Parse() Leerzeichen am Anfang und Ende der Zeichenkette ignoriert, müssen ansonsten alle Zeichen einen geeigneten numerischen Wert für eine erfolgreiche Konvertierung haben.

Wir empfehlen die Anweisung try...catch zur Behandlung der Ausnahme, wie in der folgenden Abbildung dargestellt.

using System;

public class Instance{
    public static void Main(){
        string str_var = "abc";
        try
        {
            int num_var = Int32.Parse(str_var);
            System.Console.WriteLine(num_var);
        }
        catch (FormatException)
        {
            System.Console.WriteLine("Invalid String");
        }
    }
}

Ausgabe:

Invalid String

C# String nach Int Konvertierung - Int16.TryParse() / Int32.TryParse() / Int64.TryParse() Methode

Als eine geeignete Alternative zur Parse() -Methode angesehen, wirft die TryParse() -Methode im Falle eines Fehlschlags keine Ausnahme. Stattdessen gibt sie nur False zurück, wenn die Konvertierung fehlschlägt, was die Implementierung einfacher macht.

using System;

public class Instance{
    public static void Main(){
        bool result;
        string str_var = "111";
        int num_var;
        result = Int32.TryParse(str_var, out num_var);
        if(result)
            System.Console.WriteLine(num_var);
        else
            System.Console.WriteLine("Invalid String");
    }
}

Ausgabe:

111

C# String nach Int Konvertierung - Konvertieren.ToInt16() / Konvertieren.ToInt32() / Konvertieren.ToInt64() Methode

Die Methode Convert() nimmt eine Zeichenkettenvariable als Parameter und gibt den entsprechenden numerischen Wert mit Vorzeichen 16/32/64 Bit zurück. Ähnlich wie bei der Parse() Methode, benötigen Sie bei dieser Methode eine try...catch Anweisung für Ausnahmen.

using System;

public class Instance{
    public static void Main(){
        string str_var = "123";
        try
        {
            int num_var = Convert.ToInt32(str_var);
            System.Console.WriteLine(num_var);
        }
        catch (FormatException)
        {
            Console.WriteLine("Invalid String");
        }
        catch (OverflowException)
        {
            Console.WriteLine("The string cannot fit in 32 bit value");
        }
    }
}

Ausgabe:

123

Ausnahmen sind teuer und werden im Allgemeinen nicht als eine gute Praxis angesehen, die in den Programmablauf einbezogen werden sollte. Aber manchmal können sie nützlich sein, um wichtige Informationen wie die Überlaufbedingung in der Convert()-Methode zu extrahieren.

Alle oben genannten Methoden sind gleichermaßen wirksam und weisen gewisse Kompromisse auf, wenn es um die Implementierung geht. Wir empfehlen, auf der Grundlage der Überlegungen, die wir in diesem Artikel dargelegt haben, die optimale Methode zu wählen.

Verwandter Artikel - Csharp Integer

  • C# Int in String konvertieren
  • Verwandter Artikel - Csharp String

  • C# Effizientes Entfernen aller Leerzeichen aus einer Zeichenfolge
  • C# Konvertieren eines Zeichens in ein int
  • comments powered by Disqus