Maison > Java > javaDidacticiel > Comment puis-je déterminer efficacement si une chaîne Java représente un entier ?

Comment puis-je déterminer efficacement si une chaîne Java représente un entier ?

Mary-Kate Olsen
Libérer: 2024-12-29 10:53:10
original
919 Les gens l'ont consulté

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

Déterminer si une chaîne représente un entier en Java

En Java, la question de l'identification des entiers au sein d'un tableau String se pose lors de la manipulation d'expressions complexes. Ici, nous explorerons les méthodes permettant de déterminer si une chaîne donnée est considérée comme un entier.

Méthode IsInteger

Une approche naïve consiste à parcourir la chaîne, en vérifiant que chaque caractère est un chiffre valide dans la base spécifiée. Cela garantit que chaque élément est scruté. Cependant, pour des raisons pratiques, elle offre une efficacité optimale :

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;
}
Copier après la connexion

Approche de la bibliothèque Java

Alternativement, la bibliothèque Java propose un mécanisme sans exception :

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();
}
Copier après la connexion

Technique non standard

Pour ceux qui ont une approche légère, la technique douteuse suivante utilise l'exception manipulation :

public static boolean isInteger(String s) {
    try {
        Integer.parseInt(s);
    } catch (NumberFormatException | NullPointerException e) {
        return false;
    }
    // Success if no exceptions occurred
    return true;
}
Copier après la connexion

En conclusion, déterminer si une chaîne représente un entier en Java nécessite un examen attentif de l'efficacité et du style d'implémentation. Les méthodes discutées vous offrent plusieurs options adaptées à divers scénarios.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal