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

Java Discussion :

Découper une phrase en mot


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Par défaut
    Je veux découper une phrase en mot...

    Exemple : Mon chien est beau.

    À mettre dans un tableau.

    Mon
    chien
    est
    beau
    .

    Des suggestions ?

  2. #2
    Membre expérimenté

    Inscrit en
    Octobre 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 133

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Il nous faudrait la définition de ce qu'est un mot... Je vois que le point est considéré comme un mot, donc on ne peut pas faire simplement un split() sur les espaces.

    A priori Il faut construire une List<String> puis boucler sur les caractères de la String. Tant qu'on tombe sur des lettres, on les ajoute au mot qu'on est en train de lire. Quand on tombe sur autre chose qu'une lettre, on ajoute le mot en cours dans la liste, puis on en recommence un autre.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Par défaut
    J'ai changé le nom de mon sujet.

    Je veux maintenant vérifier si une phrase entrée au clavier est valide.

    Pour être valide, elle doit contenir des espaces, être formée seulement de lettre et se terminer par un point.

    J'avais fais quelque chose comme ceci mais sans succès. C'est pour valider si chaque charactère est une letre....

    Et sinon dans l'ensemble, est-ce correct de mettre un Tokenizer dans do while ?

    Merci

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    static String validerPhrase()
    	{
     
    		String phrase = null;
     
     
    		int nbMots;
    		boolean valide = true;
     
    		do
    		{
     
     
    			System.out.println("Entrer une phrase");
    			phrase = LireString();
     
    			StringTokenizer str = new StringTokenizer(phrase);
     
    			nbMots = str.countTokens();
     
    			if(!phrase.endsWith("."))
    				valide = false;
    			if (nbMots < 2)
    				valide = false;
     
    				for(int i = 0; i < phrase.length() - 1; i++)
    				{
    					if(Character.isLetter(phrase.charAt(i)) == false);
    							valide = false;
    				}
     
    		}
    		while(valide == false);
     
    		return phrase;
    	}

  5. #5
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    Vu ton énoncé, tu n'as même plus besoin de découper ta phrases en mots.

    Ton problème se résout très facilement avec une expression régulière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    phrase.matches("(?=.* )[A-Za-z ]+\\.");
    Je te conseille de te renseigner sur les expressions régulières:
    (?=.* ) sert à vérifier qu'il y a au moins un espace.
    [A-Za-z ]+ sert à s'assurer que la phrase est uniquement constituée de lettres et d'espace.
    \\. sert à s'assurer que la phrase ce termine par point

  6. #6
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Par défaut
    Merci, je ne connaissais pas ça !

Discussions similaires

  1. [Débutant] Couper une phrase en mots SANS Str. ...
    Par Graimbault dans le forum Caml
    Réponses: 11
    Dernier message: 05/03/2014, 18h10
  2. Découper les mots dans une phrase
    Par selmastar dans le forum Débuter
    Réponses: 2
    Dernier message: 28/03/2013, 07h58
  3. Découper une phrase
    Par hidewak dans le forum Langage
    Réponses: 5
    Dernier message: 19/07/2011, 16h31
  4. [Tableaux] Comment decouper une phrase en mots?
    Par Alain15 dans le forum Langage
    Réponses: 3
    Dernier message: 26/06/2006, 10h04
  5. [Tableaux] Découper une phrase en mots
    Par cmoiscrat dans le forum Langage
    Réponses: 5
    Dernier message: 14/02/2006, 13h29

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