[Java] Integer.parseInt

Résolu/Fermé
Utilisateur anonyme - 22 févr. 2008 à 08:21
 zahir - 31 déc. 2016 à 23:02
Bonjour,

J'essaye d'exécuter ce petit code de conversion des chaines de caractères en entiers, mais il m'affiche une erreur que je ne peux pas corriger.
public class Conversion {
   // point d'entrée général
   public static void main (String[] args) {
	String s1 = "1";
	args[0]=s1;
	args[1]=s2;
	String s2 = "2";
	int i=Integer.parseInt(args[0])+ Integer.parseInt(args[1]);
      System.out.println (i+" ") ;
   }//End main
}


Merci de m'avoir aider :)

P.S. je débute en Kawa ;)

8 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
22 févr. 2008 à 09:26
Bonjour,

La fonction java parseInt de la classe Integer soulève une exceptin de type NumberFormatException il me semble.
Si la chaine que tu tente de parser n'est pas un numérique, cette exception est levée pour signaler qu'il ne s'agit pas d'un numérique. Il faut donc que tu gère ce type d'erreur en la catchant. Si tu pose cette question j'imagine que tu ne sais pas ce que c'est encore que la gestion des erreurs en java, voici donc le code correctif pour pouvoir gérer ton erreur :

public class Conversion {
   // point d'entrée général
   public static void main (String[] args) {
	String s1 = "1";
	String s2 = "2";
        // --- Retrieve program arguments
        if ( args.length > 0 )
	    s1 = args[0];
        if ( args.length > 1 )
	    args[1]=s2;
        int i = 0;
        try{
             i=Integer.parseInt(args[0])+ Integer.parseInt(args[1]);
             System.out.println ("Nombre calculé : "+i) ;
        }catch (NumberFormatException e){
            System.out.println("Error : "+e.getMessage());
        }
   }//End main
}



ps: erreur en plus : tu attribue la valeur d'une variable non déclarée (s2) à ton tableau ce qui cause certainement une NullPointerException. De plus c'est généralement l'inverse qu'il faut faire... mettre la variable de ton tableau d'argument dans ta variable locale pour ensuite travailler avec sa valeur. Si tu souhaite initialiser cette variable s2 avec une valeur par défaut, fait le avant de récupérer la valeur dans ton tableau d'argument ;)
18
bravo
0