OVH Cloud OVH Cloud

Expressions régulieres

2 réponses
Avatar
fd
Bonjour tout le monde,

J'ai une chaine de caracteres dont la capitalisation est indeterminée.
Je voudrais la passer en minuscule avec les premieres lettres de chaque
mot en majuscule sauf pour les articles.
La première solution qui vient à l'esprit est un string tokenizer
combiné avec une liste d'articles à ne pas capitaliser.
C'est facile à implémenter, mais un peu long à l'exécution si on compare
cela à une expression réguliere.
Y a t il dans l'assistance quelqu'un capable de me dire si c'est
réalisable en regexp (de 1.4) ? et si oui, de me donner une piste ?
a+

2 réponses

Avatar
ekse
Bonjour tout le monde,

J'ai une chaine de caracteres dont la capitalisation est indeterminée.
Je voudrais la passer en minuscule avec les premieres lettres de chaque
mot en majuscule sauf pour les articles.
La première solution qui vient à l'esprit est un string tokenizer
combiné avec une liste d'articles à ne pas capitaliser.
C'est facile à implémenter, mais un peu long à l'exécution si on compare
cela à une expression réguliere.
Y a t il dans l'assistance quelqu'un capable de me dire si c'est
réalisable en regexp (de 1.4) ? et si oui, de me donner une piste ?
a+


un truc comme ça avec en amont le test pour les articles :

String str;
for (int i = 0; i < str.length(); i++) {
if (i == 0 && str[0] > 'a' && str[0] < 'z')
str[0] += n;
else if (str[i] > 'A' && str[i] < 'Z')
str[i] -= n;
}

ou n = 'A' - 'a' (ou l'inverse)

Pas de regexp donc, mais ca doit etre rapide. Par contre, il y a
un probleme pour les accents.

Avatar
fd
pas mal ton algo,
entre temps j'ai trouvé un truc pas mal dans jakarta commons lang
"wordutils"
mais il va falloir que je rajoute un test pour ma liste d'articles
merci bcp


ekse wrote:

Bonjour tout le monde,

J'ai une chaine de caracteres dont la capitalisation est indeterminée.
Je voudrais la passer en minuscule avec les premieres lettres de
chaque mot en majuscule sauf pour les articles.
La première solution qui vient à l'esprit est un string tokenizer
combiné avec une liste d'articles à ne pas capitaliser.
C'est facile à implémenter, mais un peu long à l'exécution si on
compare cela à une expression réguliere.
Y a t il dans l'assistance quelqu'un capable de me dire si c'est
réalisable en regexp (de 1.4) ? et si oui, de me donner une piste ?
a+



un truc comme ça avec en amont le test pour les articles :

String str;
for (int i = 0; i < str.length(); i++) {
if (i == 0 && str[0] > 'a' && str[0] < 'z')
str[0] += n;
else if (str[i] > 'A' && str[i] < 'Z')
str[i] -= n;
}

ou n = 'A' - 'a' (ou l'inverse)

Pas de regexp donc, mais ca doit etre rapide. Par contre, il y a
un probleme pour les accents.