Séparer les mots d'une String

Résolu
cs_tenthor Messages postés 55 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 29 juin 2007 - 16 mai 2007 à 11:08
cs_tenthor Messages postés 55 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 29 juin 2007 - 16 mai 2007 à 12:10
Bonjour,

Je vous explique ma situation. J'ai une chaine de caractères qui forment des mots. En fait ceux sont les noms des attribut d'une classe.
Par exemple "monAttribut". C'est en fait une deux mots "mon" et "attribut", qui sont uniquement séparer par une Majuscule.
J'aimerais faire un méthode qui prend en paramètre la chaine et qui renvoit un tableau de String contenant les différents mots constitués par la chaine en entrée. Je suis pas sur d'être bien clair. Dons mon exemple sa donnerait un truc du genre :
String[] mots = MaClasseString.getMots(String chaine);

Le problème c'est que je ne vois absolument pas comment faire ca, notamment comment répérer le caractère en majuscule.

Alors si vous avez des idées, des suggestions, je suis preneur.
Voilà merci de votre attention.
Tenthor.

4 réponses

rudybaka Messages postés 8 Date d'inscription vendredi 10 février 2006 Statut Membre Dernière intervention 24 mai 2007
16 mai 2007 à 11:32
salut,
il existe une methode qui permet de savoir si une lettre est une majuscule :
public static boolean isUpperCase(char ch)

tu peut donc parcourir ta chaine et effectuer un traitement (ton découpage) si la lettre est une majuscule
3
scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 12
16 mai 2007 à 11:32
Salut.
Je crois qu'il y a un moyen plus simple mais je te propose ma solution.
Tu pourrais parcourir ta chaine de caractères et tu stockes dans un nouveau string les caractères tant que tu ne rencontres pas une majuscule (à l'aide de la méthode Character
.isUpperCase(int)). 
Tu fais ça jusqu'à la fin.

A+

                
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
16 mai 2007 à 11:41
Salut,

Sinon tu peux faire une expresion reguliere pour détecter les maj pour y inserer un delimiteur unique ensuite tu utilises StringTokenizer ou split pour séparer tes mots .

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
cs_tenthor Messages postés 55 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 29 juin 2007 1
16 mai 2007 à 12:10
Bonjour
Et merci à vous trois d'avoir répondu.

Les StringTokenizer, j'ai vu ca vite fait en cours, et j'ai pas compris grand chose. Mais merci quand même pour l'idée. Je travaillerais peut être cette solution plus tard.
J'ai donc utilisé les idées de rudybaka et scaryman. Je ne connaissais pas cette méthode Character.isUpperCase(char), c'est maintenant chose faite !

Ca fonctionne très bien et je valide les réponses.

Encore une fois, merci pour vos réponse.
Tenthor.
0
Rejoignez-nous