Prüfen ob ein String ein Integer ist

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von hl2mukkel.

    Prüfen ob ein String ein Integer ist

    Hallo,

    wer kennt den besten weg um herrauszufinden ob ein String ein Integer ist?

    Die einfachste möglichkeit wäre natürlich

    VB.NET-Quellcode

    1. dim int As Integer
    2. dim str As String = "5"
    3. Try
    4. str = int
    5. Catch
    6. MsgBox(str & " ist keine Zahl.")
    7. End Try


    Aber wie jeder wissen sollte der ein Buch über VB gelesen hat weiß, dass Exeptions nicht die schnellsten sind und man sie deshalb möglichst meiden sollte.

    Ich habs mal versucht mit:

    VB.NET-Quellcode

    1. TypeOf str Is Integer

    Aber da kommt das ein String kein Integer sein kann. Ich könnte versuchen ein neues Object deswegen zu machen und es dann versuchen, aber soweit ich weis hat das auch nicht geklappt und da das Object keinen Konstruktor hat kostet es mir auch nur sinnlose Zeilen :/

    Freue mich auf Antworten!
    Falls du einen String hast, der einen Zahlenwert und Text beinhaltet (z.B. "123 Hallo Welt") würde Integer.TryParse 0 ausgeben.
    Hier könntest du auch Val(str) verwenden. Val würde hier 123 zurückliefern. Val kann integer und double Werte zurückgeben.

    Snaut schrieb:

    würde Integer.TryParse 0 ausgeben.

    Problem 1 : "1A" ist kein Integer. Und Val("1A1") ergibt das gleiche wie Val("1A2"). Es bleibt die Frage, was das korrekte Ergebnis ist.
    Problem 2 : IsNumeric("1e99") ergibt true, aber die Konvertierung zu Integer würde einen Fehler auslösen.