Maison > Java > javaDidacticiel > Comment l'exception NumberFormatException en Java est-elle générée ?

Comment l'exception NumberFormatException en Java est-elle générée ?

PHPz
Libérer: 2023-06-24 19:42:09
original
1172 Les gens l'ont consulté

L'exception NumberFormatException en Java signifie que lors de la conversion d'une chaîne en type numérique et qu'il s'avère que la chaîne ne répond pas aux exigences de format du type numérique, cette exception sera générée. Ce qui suit discutera des causes, des solutions et des stratégies d’adaptation des exceptions NumberFormatException sous les aspects suivants.

  1. Cause

En Java, lors de la conversion d'une chaîne en type numérique, les conditions suivantes doivent être remplies :

  • La chaîne ne contient que des caractères numériques.
  • La chaîne ne contient qu'un seul signe plus ou moins.
  • La chaîne ne contient qu'un seul point décimal.
  • Les chaînes ne peuvent pas contenir d'espaces ou d'autres caractères non numériques.

Si la chaîne ne répond à aucune des exigences ci-dessus, une NumberFormatException sera générée.

Par exemple, exécutez le code suivant :

String str = "123.45a";
int num = Integer.parseInt(str);
Copier après la connexion

Parce que la chaîne contient le caractère non numérique "a", une exception NumberFormatException sera levée.

  1. Solution

Java fournit une variété de méthodes pour éviter l'apparition d'exceptions NumberFormatException.

  • Utilisez des expressions régulières pour filtrer les caractères non numériques.

Par exemple, vous pouvez utiliser le code suivant pour filtrer les caractères non numériques dans une chaîne :

String str = "123.45a";
str = str.replaceAll("[^\d.+-]", "");
int num = Integer.parseInt(str);
Copier après la connexion
  • Interceptez les exceptions à l'aide d'une instruction try-catch.

Par exemple, vous pouvez utiliser l'instruction try-catch dans le code pour intercepter l'exception NumberFormatException :

String str = "123.45a";
try {
    int num = Integer.parseInt(str);
} catch (NumberFormatException e) {
    e.printStackTrace();
}
Copier après la connexion
  • Utilisez la méthode d'analyse de type numérique pour éviter les exceptions.

Java fournit une variété de méthodes d'analyse de types numériques, telles que parseInt, parseLong, parseDouble, etc. Ces méthodes filtreront automatiquement les caractères non numériques dans les chaînes.

Par exemple, vous pouvez utiliser le code suivant pour éviter l'apparition de NumberFormatException :

String str = "123.45a";
double num = Double.parseDouble(str);
Copier après la connexion
  1. Stratégie d'adaptation

Une stratégie de réponse raisonnable doit être développée pour l'apparition de NumberFormatException. Voici quelques stratégies courantes :

  • Vérification du format des nombres saisis par l'utilisateur. Ajoutez des restrictions d'expression régulière à la zone de saisie ou utilisez un clavier numérique modifié pour empêcher les utilisateurs de saisir des caractères illégaux.
  • Filtrez et convertissez les chaînes. Utilisez des expressions régulières ou des méthodes d'analyse numérique dans votre code pour vous assurer que la chaîne ne contient que des caractères numériques.
  • Détectez les exceptions et invitez l'utilisateur. Utilisez l'instruction try-catch dans le code pour intercepter l'exception NumberFormatException et émettre une invite à l'utilisateur, lui indiquant que la chaîne d'entrée ne répond pas aux exigences de format numérique.

Pour résumer, l'exception NumberFormatException se produit car la chaîne ne répond pas aux exigences de format du type numérique. Afin d'éviter les exceptions, les entrées de l'utilisateur doivent être vérifiées, les chaînes d'entrée doivent être filtrées et converties et des stratégies de réponse raisonnables doivent être formulées.

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal