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
Mary-Kate Olsenoriginal
2024-12-29 10:53:10938parcourir

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;
}

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();
}

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;
}

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!

Déclaration:
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