Bonjour,
Je souhaiterais savoir comment prendre mot apres mot dans un textArea.
De plus, je souhaiterais egaleemnt prendre les retour à la ligne.
Merci pour votre aide.
PS: comment accepter les tabulation dans un texte area?
Bonjour,
Je souhaiterais savoir comment prendre mot apres mot dans un textArea.
De plus, je souhaiterais egaleemnt prendre les retour à la ligne.
Merci pour votre aide.
PS: comment accepter les tabulation dans un texte area?
Tu récupère la valeur de ton textarea et tu y applique la fonction split applicable aux string en précisant que tu te base sur les espaces, ca te renverra un tableau avec dans chaque case un mot (ici séparé par des espaces), y a plus qu'à parcourir le tableau...
Tu peux egalement lui dire de faire de même avec les sauts de lignes.
http://java.sun.com/j2se/1.4.2/docs/...ng/String.html
tu peux faire un getText() sur ton TextArea tu récupère alors un String que tu peux parser avec la classe StringTokenizer par exemple.
Utilise la classe StringTokenizer
+++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 StringTokenizer st = new StringTokenizer("ca va bien ?"); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); }
Ju
Merci à tous,
j'avais deja commencé à utiliser StringTokenizer.
Mais le probleme est que je souhaite garder les retours à la ligne ET les tabulations.
Si jarrive à garder ces deux choses, il me restera alors encore un probleme: configurer mon textArea pour qu'il accepte les tabulations, mais je ne sais pas si c'est possible.
MERCI D'AVANCE
C'est quoi le but de ton opération? Tu veux les prendre pour faire quoi?
au fait, je veux traduire mot par mot. J'ai une sorte de lexique que j'ouvre...ensuite il me suffit de comparer un à un.
Lorsqu'un mot est trouvé, il le remplace dans un nouveau fichier par sa traduction.
personne ne voit?
Pour résumer:
1/ Je veux que mon textArea accepte les tabulation (un peu comme dans un editeur de texte)
2/ Je veux prendre mot à mot mon textArea
3/ Je veux que les retour à la ligne et tabulation apparaissent.
Pourquoi le 3/?
Tout simplement, je reprends le texte du textArea que l'utilisateur a entré, ensuite je transforme ces mots en d'autres mots, mais je souhaite conserver sa mise en page.
MERCI
PS: l'utilisateur entre des mots appartenants à un script que je suis entrain de mettre en place. Il ecrit des trucs du genre:
Moi, j'ai utilisé un StringTokenizer qui coupe apres les blancs ou les ";" (car c'est une sorte de langage de programmation. Mais je souhaite tranformer son:
Code : Sélectionner tout - Visualiser dans une fenêtre à part OuvrirFichier;
Par
Code : Sélectionner tout - Visualiser dans une fenêtre à part OuvrirFichier;
Je dois donc place à la fin le ";"
Code : Sélectionner tout - Visualiser dans une fenêtre à part OpenFile;
Masi comment savoir si l'utilisateur a mis un ";" ou un blanc.
Si il ecrit:
OuvrirFichier ("blabla"); ou OuvrirFichier;
Ca doit retourner OpenFile("Blabla"); ou OpenFile;
Donc comment savoir si StringTokenizer a coupé à cause d'un ; ou d'un blanc? (afin que je place un blanc ou un ";")
Personne n'est inspiré?
Toutes les pistes sont bonnes à prendre, n'hésitez pas
Moi j'imbriquerais des tableaux du style, un premier split sur les espaces qui donne donc un tableau, puis un autre split de chaque case de ton tableau sur les ; puis un autre sur autre chose,et ainsi de suite.
Autre solution tu encadre tout les caracteres speciaux par un espace (ex ";" devient " ; ") tu fais un premier split sur les saut de ligne pour séparer chaque ligne, ensuite un second split sur les espaces, tu as ainsi chaque caractere dans une case de ton tableau et ainsi tu les gardes.
Troisieme solution pour tes remplacements, tu prends caracteres par caractere tu teste le suivant, si ca correspond à un mot clé à changer tu reviens en arriere..
je ne l'ai pas testé, donc ne t'attends pas a ce qu'elle marche du premier coup.
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 String text=textArea.getText(); StringBuffer resultat=new StringBuffer(),intermediaire=new StringBuffer(); for(int i=0;i<text.length();i++){ if(Character.isLeter(text.charAt(i))){ do{ intermediaire.append(text.charAt(i)); i++; }while(Character.isLeter(text.charAt(i))&&i<text.length()); resultat.append(traduction(intermediaire.toString())); intemediaire.delete(0,intermediaire.length()); continue; } resultat.append(text.charAt(i)); } }![]()
Partager