IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

problème avec les string


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 42
    Points : 30
    Points
    30
    Par défaut problème avec les string
    bonjour ;
    j'ai essayé de crée un tableau qui contient des mots d'une phrase tapée par l'utilisateur sous eclipse mais j'ai pas trouvé la solution pouvez m'indiquez seulement le chemin à suivre sachant que je suis débutante
    voici un morceau de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Scanner entrer=new Scanner(System.in);
    			String n=entrer.nextLine();
    		String Mots[] = null;
    		String rev="";
    		int nbrMot=1;
    		for (int i=0;i<n.length();i++){
    			if (n.charAt(i)==' '){
    				nbrMot=nbrMot+1;
    			}}
    		//System.out.print("nombre de mot est : " + nbrMot+ "\r");
    		for (int i=0;i<=nbrMot;i++){
    			if(n.charAt(i)!=' '){
     
    			}
     
    			Mots[i]=rev;
    		}
    je ne sais quoi ajouter à l'intérieur de l'instruction if

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 114
    Points : 83
    Points
    83
    Par défaut
    Déjà il faudrait que tu définisses ton problème clairement.Qu'est-ce que tu veux faire avec ces mots?

  3. #3
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 75
    Points : 61
    Points
    61
    Par défaut
    Pour en faire il vaut mieux utiliser un objet de la classe StringToKenizer ( java.util )
    Cette classe définit des méthode qui permettent de découper une chaines en plusieurs sous chaines
    voici un exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    String s;
    int n=0;
    // s contient votre chaine
    StringToKenizer st = new StringToKenizer ( s, " ,;");
    // la méthodes prend en argument s et les séparateurs que tu veux considérer
    while (st.hasMoreTokens() ) n++ ;

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 42
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par magikk Voir le message
    Déjà il faudrait que tu définisses ton problème clairement.Qu'est-ce que tu veux faire avec ces mots?
    je veux juste les stocker dans un tableau Mots[] afin de les manipuler après je voulais utiliser la méthode substring pour avoir des sous chaine (ces sous chaines sont les mots de la phrase ) mais je n'ariive pas à le faire pouvez vous m'aider

  5. #5
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 75
    Points : 61
    Points
    61
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Scanner entree = new Scanner (System.in);
    String mots[] = new String[30];
     
    int taille=0;
    String s = entree.nextLine();
    String mot;
     
    StringToKenizer st = new StringToKenizer(s," ");
    while(st.hasMoreTokens()){
     
         mots[taille]= st.nextTokens();
         taille ++;
    }

  6. #6
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 75
    Points : 61
    Points
    61
    Par défaut
    Je pense qu'avec StringToKenizer c'est beaucoup plus simple
    car avec substring tu dois chercher avant les index début mot ou début et fin mot
    rq String mot; n'as aucun rôle dans le code ci dessus je m'excuse

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 42
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par fahmi.bedoui Voir le message
    Je pense qu'avec StringToKenizer c'est beaucoup plus simple
    car avec substring tu dois chercher avant les index début mot ou début et fin mot
    rq String mot; n'as aucun rôle dans le code ci dessus je m'excuse
    merci pour ta solution mais on a pas encore etudié la classe StringToKenizer dans la classe alors il faut utiliser un simple algorithme en utilisant substring

  8. #8
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 75
    Points : 61
    Points
    61
    Par défaut
    Donc Je vous propose ce code a tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Scanner entrer=new Scanner(System.in);
    String s=entrer.nextLine();
    String mots[] = new String[20];
    int taille = 0 ;
    int deb = 0;
    int fin = 0;
    for(int i=0; i<s.length();;i++){
     
       if ( s.charAt(i) == ' ' ){
     
            fin = i-1;
            mots[taille]= s.substring(deb,fin);
            taille ++;
            deb= fin+1;
       }
    }

  9. #9
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 130
    Points : 276
    Points
    276
    Par défaut
    Tu peux aussi utiliser la méthode split() de la Classe String.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String s = "il fait beau aujourd'hui";
    String[] st = s.split(" ");
     
    Résultat => ["il","fait","beau","aujourd'hui"]
    MigouW

    La seule bataille perdue d'avance est celle que l'on refuse de livrer.


    Pensez au tag
    Ma réponse vous a été utile, votez plus 1 sur le message.
    Ma réponse est hors sujet, votez moins 1 sur le message.

  10. #10
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    Citation Envoyé par MigouW Voir le message
    Tu peux aussi utiliser la méthode split() de la Classe String.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String s = "il fait beau aujourd'hui";
    String[] st = s.split(" ");
     
    Résultat => ["il","fait","beau","aujourd'hui"]
    danger: s'il y a deux espaces consécutives dans ton texte ça va avoir des résultats inattendus .....
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

  11. #11
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 130
    Points : 276
    Points
    276
    Par défaut
    Citation Envoyé par professeur shadoko Voir le message
    danger: s'il y a deux espaces consécutives dans ton texte ça va avoir des résultats inattendus .....
    Effectivement, on peut aussi envisager un remplacement des espaces multiples avant de faire le split.
    MigouW

    La seule bataille perdue d'avance est celle que l'on refuse de livrer.


    Pensez au tag
    Ma réponse vous a été utile, votez plus 1 sur le message.
    Ma réponse est hors sujet, votez moins 1 sur le message.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 42
    Points : 30
    Points
    30
    Par défaut
    merci pour les réponses;
    ça marchait avec la classe StringToKenizer. l'exercice a été résolu et le professeur était satisfait

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec les String
    Par tirvax dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 12/11/2014, 08h45
  2. Problème avec les strings
    Par Menudelux dans le forum Débuter
    Réponses: 7
    Dernier message: 05/11/2012, 23h54
  3. un petit probléme avec les String.
    Par Syklops dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 07/04/2009, 12h12
  4. Sale problème avec les strings et les fichiers
    Par acieroid dans le forum C++
    Réponses: 18
    Dernier message: 26/04/2006, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo