Comment découpé un texte en mots et effectuer les dans un tableau? [Résolu]

Signaler
Messages postés
47
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
24 juillet 2011
-
Messages postés
47
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
24 juillet 2011
-
bonjour, voila mon problème :
j'ai un texte et je veu le découpé en mots et effectuer les mots dans un tableau "word []" en utilisant StringTokenizer
j'ai utilisé ce code ci-dessus sa marche mais pas parfaitement
                     ..........
                    String[]  words = text.split("[\t\n ,.;:.]", 0);
                    for (int i=0 ;i<words.length ; i++)
                                {
                                  String mot = words[i];
                                 }
                    ...........
merci pour l'aide!.
A voir également:

8 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
104
Salut,

"sa marche mais pas parfaitement " : ben qu'est-ce qui ne marche pas parfaitement ?
______________________________________
DarK Sidious

Salut,

Donc 







çà ne marche pas.


En attendant que tu trouves pourquoi çà ne marche pas, je vais répondre à ta question concernant StringTokenizer.








Il faut qu'on parle le même langage : qu'appelles tu un mot ? Pour moi, c'est une suite de caractères sans espaces. Et pour toi?




Supposons justement le texte:




String texte = "Pour moi, c'est une suite de caractères sans espaces. Et pour toi?";




Ce texte est composé de 12 mots séparés par 1 espace et se prete à l'utilisation de StrigTokenizer:




Mais tout dépend de la structure du texte que tu veux éclater




voici le code:










// la chaine à découper
String laChaine =





"Pour moi, c'est une suite de caracteres sans espaces. Et pour toi?"

;
StringTokenizer text;
String tok =

""

;
text =

new

StringTokenizer(laChaine,

" "

);



int

nbreMots = 0;


while

(text.hasMoreTokens())

// comptage des mots du texte


{
nbreMots++;
tok = text.nextToken();
}

String[] words =

new

String[nbreMots];
text =

new

StringTokenizer(laChaine,

" "

);


for

(

int

i = 0; i < words.length; i++)
{


if

(text.hasMoreTokens())
{
tok = text.nextToken();
words[i] = tok;
}
}
// controle du resultat


for

(

int

i=0 ;i<words.length ; i++)
{
System.out.println(

"words["

+ i +

"] = "

+ words[i]);
}

Cordialement,









...\ Dan /...

Re,

Non, dans mon exemple il y a un séparateur, l'espace qui est entre les 2 "
text = new
StringTokenizer(laChaine, " "); // separateur " "
 
Les autres caractères tels que virgule. point etc feront partie des mots.

Cest pour celà qu'il faut connaître la "structure "de la chaîne.
Si tu ne veux pas la (,) qui suit (moi,) ni le (.) de (espaces.) ni le (?) de (toi?), il faut les ajouter:

(laChaine, " , . ?").

Cordialement,

...\ Dan /...

Ps,

On peut aussi écrire: (laChaine, " ,.?") sans espace entre les séparateurs.
Bien entendu s'il y a l'un des sparateurs (, . ?) à l'interieur d'un mot, ce mot sera découpé
...\ Dan /...
Messages postés
47
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
24 juillet 2011

merci Dani
Messages postés
47
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
24 juillet 2011

ta réponse est juste pour les séparateur suivants: ",  .;" .pour les autre non
merci comme même  
Messages postés
47
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
24 juillet 2011

c'est bon sa marche très bien !
Messages postés
47
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
24 juillet 2011

merci Dani