Se connecter avec
S'enregistrer | Connectez-vous

lecture d'un entier dans une string

Dernière réponse : dans Programmation
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.

c'est du Java, c'est vrai que c'est toujour mieux de preciser quand on pose une question!

int i= Integer.parseInt(""+args[0]);

Faut lui paser du string, donc essai ca, mais je pense pas que ce soit le probleme!

Met 3 ou 4 lignes de code autour du probleme!

en gros je dois déduire un programme qui affiche autant de fois Bonjour! que spécifié par un entier passé sur la ligne de commande
public class Bonjour2
{
public static void main(String []args)
{
int i= Integer.parseInt;
System.out.println("Bonjour!");
}
}
et ça marche pas :-(

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 :

  1. public class Bonjour{
  2.  
  3. public static void main(String [] parametres){
  4. /* on teste en premier lieu, qu'il y a au moins un parametre passé au programme */
  5. if( parametres.length >=1){
  6. /* 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 */
  7. /* on fait ceci avec try{}catch(){} */
  8. try{
  9. /* 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". */
  10. for(int i = 0; i < Integer.parseInt(parametres[0]);i++)
  11. System.out.println("Bonjour");
  12. }catch(NumberFormatException e){System.out.println("L'argument est invalide");}
  13. }else System.out.println("Il manque le parametre");
  14.  
  15. System.out.println("Fin du programme :p");
  16. }
  17. }


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.... :p 

Mais bon a l echelle humaine on ne le voit pas :p  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
Lassé par la pub ? Créez un compte
Tom's guide dans le monde