lecture d'un entier dans une string
Dernière réponse : dans Programmation
quelqu'un pourrait-il m'expliquer comment marche exactement la méthode parseInt de la classe Integer?
Ex: int i= Integer.parseInt(args[0])
Sachant que quand args=1 le programme affiche une seule fois ce que j'ai passé sur ma ligne de commande, quand args=2, le programme affiche deux fois.....
merci :-o :-o :-o :-o :-o :-o :-o :-o :-o :-o :-o :-o
Ex: int i= Integer.parseInt(args[0])
Sachant que quand args=1 le programme affiche une seule fois ce que j'ai passé sur ma ligne de commande, quand args=2, le programme affiche deux fois.....
merci :-o :-o :-o :-o :-o :-o :-o :-o :-o :-o :-o :-o
Autres pages sur : lecture entier string
Lassé par la pub ? Créez un compte
C'est difficile de savoir ce que fait ton programme si tu ne mets pas le code...
la méthode parseInt essaye de convertir la chaine de caractères passée en paramètre en un entier.
Integer.parseInt("5") ça renvoit l'entier 5 , mais si tu lui passe n'importe quoi en paramètre, comme "choucroute", je ne me souviens plus exactement, mais je pense que la méthode lance une exception.
la méthode parseInt essaye de convertir la chaine de caractères passée en paramètre en un entier.
Integer.parseInt("5") ça renvoit l'entier 5 , mais si tu lui passe n'importe quoi en paramètre, comme "choucroute", je ne me souviens plus exactement, mais je pense que la méthode lance une exception.
lol
Bon deja je vois que sylvain avait pas reconnu java
Ensuite faudrait faire un peu d algo pour comprendre que tu as besoin d une boucle pour faire ce que tu veux.
Voici un code commenté qui t expliquera comment faire ton programme :
Voila, petite note tu peux mettre autre chose que String[] args comme nom de variable comme je l ai fais
Et lorsqu il n y a qu une instruction dans une boucle ou dans un test on est pas obligé de mettre les {} sinon faut mettre for( ... ){ //le code }
see ya
PS : desolé pour l indentation mais la balide code du forum est pas geniale
Bon deja je vois que sylvain avait pas reconnu java
Ensuite faudrait faire un peu d algo pour comprendre que tu as besoin d une boucle pour faire ce que tu veux.
Voici un code commenté qui t expliquera comment faire ton programme :
public class Bonjour{ public static void main(String [] parametres){ /* on teste en premier lieu, qu'il y a au moins un parametre passé au programme */ if( parametres.length >=1){ /* maintenant nous allons afficher bonjour le nombre de fois qu indiquer dans le parametre. En revanche, il ne faut pas oublier de gerer l exception si jamais les caracteres sont autres que numerique (pas exemple des lettres), cette erreur peut etre generee par la methode parseInt de la classe Integer */ /* on fait ceci avec try{}catch(){} */ try{ /* boucle qui affiche autant de fois bonjour que specifier en parametre. Si le parametre n est pas une valeur entiere une erreur de type NumberFormatException est generée et affiche le message "L argument est invalide". */ for(int i = 0; i < Integer.parseInt(parametres[0]);i++) System.out.println("Bonjour"); }catch(NumberFormatException e){System.out.println("L'argument est invalide");} }else System.out.println("Il manque le parametre"); System.out.println("Fin du programme :p"); } }
Voila, petite note tu peux mettre autre chose que String[] args comme nom de variable comme je l ai fais
Et lorsqu il n y a qu une instruction dans une boucle ou dans un test on est pas obligé de mettre les {} sinon faut mettre for( ... ){ //le code }
see ya
PS : desolé pour l indentation mais la balide code du forum est pas geniale
Quand a comment marche la methode parseInt, il exite ce qu on appelle la javadoc, qui explique toutes les API, classe methode, et elle est sur java.sun.com ou tu peux la dl.
Donc faudrait ptre chercher avant ^^
parseInt :
Parameters:
s - a String containing the int representation to be parsed
Returns:
the integer value represented by the argument in decimal.
Throws:
NumberFormatException - if the string does not contain a parsable integer.
Y a rien a comprendre de plus tout est dit.
Tu fais :
int ma_valeur = Integer.parseInt(variable_de_type_String);
et ceci te retourne un entier dans ma_valeur si variable_de_type_String est une representation numérique sinon ca te retourne une erreur de type NumberFormatException.
Je sais c'est en anglais mais c est loin d etre du haut niveau, la preuve je le comprends lol
Dans le code de tout a l heure, j utilisais la methode directement dans un test, plutot que de l affecter a une variable. Mais les deux sont valables
D ailleurs je pense que j aurais du le mettre dans une variable plutot qu en test, le programme s executerai ptre plus vite.
Car la convertion du String est ptre plus longue que la simple lecture. Avoir avec les methodes de la Class System pour calculer le temps d execution d une instruction....
Mais bon a l echelle humaine on ne le voit pas
c est de l ordre du milliseconde
Donc faudrait ptre chercher avant ^^
parseInt :
Parameters:
s - a String containing the int representation to be parsed
Returns:
the integer value represented by the argument in decimal.
Throws:
NumberFormatException - if the string does not contain a parsable integer.
Y a rien a comprendre de plus tout est dit.
Tu fais :
int ma_valeur = Integer.parseInt(variable_de_type_String);
et ceci te retourne un entier dans ma_valeur si variable_de_type_String est une representation numérique sinon ca te retourne une erreur de type NumberFormatException.
Je sais c'est en anglais mais c est loin d etre du haut niveau, la preuve je le comprends lol
Dans le code de tout a l heure, j utilisais la methode directement dans un test, plutot que de l affecter a une variable. Mais les deux sont valables
D ailleurs je pense que j aurais du le mettre dans une variable plutot qu en test, le programme s executerai ptre plus vite.
Car la convertion du String est ptre plus longue que la simple lecture. Avoir avec les methodes de la Class System pour calculer le temps d execution d une instruction....
Mais bon a l echelle humaine on ne le voit pas
c est de l ordre du milliseconde
merci pour le tuyau et surtout pour les commentaires, j'ai pû comprendre enfin ce problème.
Je sais qu'il existe une documentation java mais je n'arrive pas à m'en servir lol*
si elle était organisée comme un dico je pense que j'y arriverais mais là j'avoue que je suis perdue
y'aurait-il un mode d'emploi pour la doc?
enfin merci encore et à bientôt sur ce forum ( je prévois d'autres problèmes à venir)
slu
Je sais qu'il existe une documentation java mais je n'arrive pas à m'en servir lol*
si elle était organisée comme un dico je pense que j'y arriverais mais là j'avoue que je suis perdue
y'aurait-il un mode d'emploi pour la doc?
enfin merci encore et à bientôt sur ce forum ( je prévois d'autres problèmes à venir)
slu
Lassé par la pub ? Créez un compte