Bei der Arbeit mit Java müssen Sie manchmal überprüfen, ob eine Zeichenfolge eine Zahl ist. Dies kann beispielsweise beim Lesen von Benutzereingaben oder beim Verarbeiten von Daten aus einer externen Quelle nützlich sein. In Java gibt es mehrere Möglichkeiten, diese Aufgabe auszuführen, einschließlich der Verwendung von regulären Ausdrücken und Methoden der Number-Klasse.
Eine Möglichkeit, eine Zeichenfolge auf eine Zahl zu überprüfen, besteht darin, Methoden der Number-Klasse zu verwenden, z. B. parseInt() oder parseFloat(). Zum Beispiel können Sie den folgenden Code verwenden:
try catch (NumberFormatException e)
Wenn die Eingabezeichenfolge input kann erfolgreich in eine ganze Zahl umgewandelt werden, dann ist es eine Zahl. Andernfalls wird eine NumberFormatException ausgelöst.
Eine andere Möglichkeit zu überprüfen, ob eine Zeichenfolge eine Zahl ist, besteht darin, reguläre Ausdrücke zu verwenden. Sie können ein Muster für eine Zahl definieren und dann eine Methode verwenden matches() der String-Klasse, um die Zeichenfolge auf Übereinstimmung mit diesem Muster zu überprüfen. Zum Beispiel können Sie den folgenden Code verwenden:
String pattern = "\\d+";if (input.matches(pattern))else
In diesem Beispiel definiert das Muster "\\d+" eine beliebige Zahlenfolge. Wenn die Eingabezeichenfolge vollständig aus Ziffern besteht, wird sie als Zahl betrachtet.
Überprüfen, ob eine Zeichenfolge in Java eine Zahl ist
| Methode | Die Beschreibung |
|---|---|
| try-catch einen Block mit der parseInt() -Methode | Es wurde versucht, eine Zeichenfolge mithilfe der parseInt() -Methode in eine Zahl zu konvertieren. Wenn die Konvertierung erfolgreich war, ist die Zeichenfolge eine Zahl. |
| try-catch einen Block mit einer Double-Methode.parseDouble() | Ähnlich wie bei der vorherigen Methode wird jedoch die Double-Methode verwendet.parseDouble(). Mit dieser Methode können Sie mit Gleitkommazahlen arbeiten. |
| reguläre Ausdrücke | Verwenden Sie reguläre Ausdrücke, um zu überprüfen, ob eine Zeichenfolge mit einem angegebenen numerischen Muster übereinstimmt. |
Jede dieser Methoden hat ihre eigenen Vor- und Nachteile, und die Auswahl der Methode hängt von der spezifischen Aufgabe und den Validierungsanforderungen ab. Es ist jedoch wichtig, die Möglichkeit zu berücksichtigen, einen Fehler während der Konvertierung einer Zeichenfolge in eine Zahl zu erhalten und entsprechend zu behandeln.
Methode 1: Verwenden der parseInt-Methode
Um eine Zeichenfolge auf eine Zahl zu überprüfen, müssen Sie den Aufruf der parseInt() -Methode in einen Try-catch-Block umbrechen und die NumberF-Ausnahme abfangen
Methode 2: Verwenden der Double-Methode.parseDouble
Anwenden der Double-Methode.parseDouble() , um eine Zeichenfolge auf eine Zahl zu überprüfen, kann nützlich sein, wenn Sie auch mit den numerischen Werten einer gegebenen Zeichenfolge arbeiten müssen. Denken Sie jedoch daran, dass diese Methode eine NumberFormatException auslösen kann, wenn eine Zeichenfolge nicht in eine Zahl konvertiert werden kann.
Hier ist ein Beispiel für die Verwendung der Double-Methode.parseDouble(), um eine Zeichenfolge auf eine Zahl zu überprüfen:
public static boolean isNumeric(String str) catch (NumberFormatException nfe) return true;>
Diese Methode gibt true zurück, wenn die Konvertierung einer Zeichenfolge in eine Zahl erfolgreich war, und false, wenn eine NumberFormatException aufgetreten ist. Sie können diese Methode verwenden, um eine Zeichenfolge in Java auf eine Zahl zu überprüfen.
Methode 3: Verwenden der try-catch-Methode
Hier ist ein Beispielcode:
public static boolean isNumeric(String str) catch (NumberFormatException e) return true;>
In diesem Beispiel verwenden wir die parseDouble() -Methode, um zu versuchen, eine Zeichenfolge in eine Zahl vom Typ double zu konvertieren. Wenn die Zeichenfolge keine Zahl ist, wird eine NumberFormatException ausgelöst und wir fangen sie mit einem Try-catch-Block ab. Wenn keine Ausnahme aufgetreten ist, geben wir true zurück, was bedeutet, dass die Zeichenfolge eine Zahl ist.
System.out.println(isNumeric("123")); // trueSystem.out.println(isNumeric("abc")); // false
Am Ausgang erhalten wir:
truefalse
Mit dieser Methode können wir auch überprüfen, ob eine Zeichenfolge eine ganze Zahl ist, indem wir die parseInt() -Methode verwenden. In diesem Fall fangen wir eine NumberFormatException ab.
Methode 4: Verwenden eines regulären Ausdrucks
Um zu überprüfen, ob eine Zeichenfolge eine Zahl ist, können wir den folgenden regulären Ausdruck verwenden:
Dieser reguläre Ausdruck prüft, ob eine Zeichenfolge mit einem optionalen "+" - oder "-" -Zeichen beginnt, gefolgt von einer beliebigen Anzahl von Ziffern, gefolgt von einem optionalen Dezimalpunkt und einer oder mehreren Ziffern danach.
Um einen regulären Ausdruck in Java zu verwenden, können wir die Pattern-Klasse aus dem Java-Paket verwenden.util.regex . Hier ist ein Beispiel, um eine Zeichenfolge mit einem regulären Ausdruck auf eine Zahl zu überprüfen:
import java.util.regex.Matcher;import java.util.regex.Pattern;public class Main else >>
In diesem Beispiel erstellen wir einen regulären Ausdruck mithilfe der compile-Methode der Pattern-Klasse. Dann erstellen wir ein Matcher-Objekt mit der Matcher-Methode der Pattern-Klasse und wenden die matches-Methode an, um zu überprüfen, ob eine Zeichenfolge mit einem regulären Ausdruck übereinstimmt.