Heim > Java > javaLernprogramm > Wie kann ich effizient feststellen, ob ein Java-String eine Ganzzahl darstellt?

Wie kann ich effizient feststellen, ob ein Java-String eine Ganzzahl darstellt?

Mary-Kate Olsen
Freigeben: 2024-12-29 10:53:10
Original
934 Leute haben es durchsucht

How Can I Efficiently Determine if a Java String Represents an Integer?

Bestimmen, ob ein String eine Ganzzahl in Java darstellt

In Java stellt sich bei der Verarbeitung komplexer Ausdrücke die Frage nach der Identifizierung von Ganzzahlen innerhalb eines String-Arrays. Hier untersuchen wir Methoden, um festzustellen, ob ein bestimmter String als Ganzzahl qualifiziert ist.

IsInteger-Methode

Ein naiver Ansatz besteht darin, den String zu durchlaufen und zu überprüfen, ob jedes Zeichen eine gültige Ziffer ist die angegebene Basis. Dadurch wird sichergestellt, dass jedes Element geprüft wird. Aus praktischen Gründen bietet es jedoch eine optimale Effizienz:

public static boolean isInteger(String s) {
    return isInteger(s, 10);
}

public static boolean isInteger(String s, int radix) {
    if (s.isEmpty()) {
        return false;
    }
    for (int i = 0; i < s.length(); i++) {
        if (i == 0 && s.charAt(i) == '-') {
            if (s.length() == 1) {
                return false;
            } else {
                continue;
            }
        }
        if (Character.digit(s.charAt(i), radix) < 0) {
            return false;
        }
    }
    return true;
}
Nach dem Login kopieren

Ansatz der Java-Bibliothek

Alternativ bietet die Java-Bibliothek einen ausnahmefreien Mechanismus:

public static boolean isInteger(String s, int radix) {
    Scanner sc = new Scanner(s.trim());
    if (!sc.hasNextInt(radix)) {
        return false;
    }
    // Ensures there's no remaining data after extracting the integer
    sc.nextInt(radix);
    return !sc.hasNext();
}
Nach dem Login kopieren

Nicht-Standard-Technik

Für diejenigen mit einem unbeschwerten Ansatz: Die folgende fragwürdige Technik verwendet eine Ausnahme Handhabung:

public static boolean isInteger(String s) {
    try {
        Integer.parseInt(s);
    } catch (NumberFormatException | NullPointerException e) {
        return false;
    }
    // Success if no exceptions occurred
    return true;
}
Nach dem Login kopieren

Zusammenfassend lässt sich sagen, dass die Bestimmung, ob ein String in Java eine Ganzzahl darstellt, eine sorgfältige Abwägung der Effizienz und des Implementierungsstils erfordert. Die besprochenen Methoden bieten Ihnen mehrere Optionen, die auf unterschiedliche Szenarien zugeschnitten sind.

Das obige ist der detaillierte Inhalt vonWie kann ich effizient feststellen, ob ein Java-String eine Ganzzahl darstellt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage