|
|
|
|
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
}
Bonjour,
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 ;) ~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~ |
Bien, j'avais glisser quelques erreurs pour voir si tu avais compris le principe mais apparemment non ^^
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
}
Et dans la bonne version :
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 )
s2 = args[1];
int i = 0;
try{
i=Integer.parseInt(s1)+ Integer.parseInt(s2);
System.out.println ("Nombre calculé : "+i) ;
}catch (NumberFormatException e){
System.out.println("Error : "+e.getMessage());
}
}//End main
}
Sauf oubli de ma part il ne devrait pas y avoir d'erreur (je n'ai pas testé) ~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~ |
Salut dans ton programme voici ce qui ne marche pas: déja c'est ta variable s2?ca c'est une erreur puis ca te sert à rien de donner des valeur à args[0] et args[1] ce sont des valeurs dont tu dois les entrer par la ligne de commande donc c'est inutile. voila en vrai ce que tu dois avoir pour ton petit programme.tu as besoin de 4 à 5 lignes maxi pour ton programme pas besoin de beaucoup de choses.
|
A priori si elle a voulu traiter les argument c'est qu'elle veut pouvoir les utiliser.
|
Je suis tout à fait d'accord avec toi mais je disais seulement que pour une debutante tu vois la notion de gestion d'exception ou un programme avec plusieurs lignes ne se comprend pas tres facillement il faudrait just qu'elle sache à quoi ca lui sert la notion de Integer.parseInt(...); après elle pourra l'utiliser comme elle le veux. imagine toi qu'elle ne sais pas ce qui signifie Integer.parseInt(...) et tu lui parle deja de la gestion des exceptions c'est énorme moi on m'a appris java par des choses simples avant de me parler de la gestion des exceptions. ca viens après je suis desolé.
|