Je transforme une chaine de format SimpleDateFormat de type "HH'H'mm"
en un autre au format SimpleDateFormat de type "##'H##".
Pour être plus précis, ce qui est entre ' est préservé mais 'MOT' par
exemple devient 'M'O'T et en dehors des guillemets, seuls les
caractères parmi GyMwWDdFEaHkKhmsSzZ sont changés en #.
Je suis nul en regex, j'ai donc codé le bouzin comme ça:
<code>
Pattern regex = Pattern.compile("[GyMwWDdFEaHkKhmsSzZ]");
String[] test = formatString_.split("'");
boolean pair = true;
for (int i = 0; i < test.length; i++) {
if (pair) {
Matcher matcher = regex.matcher(test[i]);
maskString_ += matcher.replaceAll("#");
}
else {
for (int j = 0; j < test[i].length(); j++) {
maskString_ += "'" + test[i].substring(j, 1);
}
}
pair = !pair;
}
formatter = new MaskFormatter(maskString_);
</code>
Existe-t-il une solution plus directe, plus "regex" ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
TestMan
Bonjour,
Peux-tu donner d'autres exemples de tranformation (avant/après) que tu recherches ?
A+
TM
Bonjour,
Je transforme une chaine de format SimpleDateFormat de type "HH'H'mm" en un autre au format SimpleDateFormat de type "##'H##". Pour être plus précis, ce qui est entre ' est préservé mais 'MOT' par exemple devient 'M'O'T et en dehors des guillemets, seuls les caractères parmi GyMwWDdFEaHkKhmsSzZ sont changés en #. Je suis nul en regex, j'ai donc codé le bouzin comme ça: <code> Pattern regex = Pattern.compile("[GyMwWDdFEaHkKhmsSzZ]"); String[] test = formatString_.split("'"); boolean pair = true; for (int i = 0; i < test.length; i++) { if (pair) { Matcher matcher = regex.matcher(test[i]); maskString_ += matcher.replaceAll("#"); } else { for (int j = 0; j < test[i].length(); j++) { maskString_ += "'" + test[i].substring(j, 1); } } pair = !pair; } formatter = new MaskFormatter(maskString_); </code>
Existe-t-il une solution plus directe, plus "regex" ?
Merci d'avance ...
Bonjour,
Peux-tu donner d'autres exemples de tranformation (avant/après) que tu
recherches ?
A+
TM
Bonjour,
Je transforme une chaine de format SimpleDateFormat de type "HH'H'mm" en
un autre au format SimpleDateFormat de type "##'H##".
Pour être plus précis, ce qui est entre ' est préservé mais 'MOT' par
exemple devient 'M'O'T et en dehors des guillemets, seuls les caractères
parmi GyMwWDdFEaHkKhmsSzZ sont changés en #.
Je suis nul en regex, j'ai donc codé le bouzin comme ça:
<code>
Pattern regex = Pattern.compile("[GyMwWDdFEaHkKhmsSzZ]");
String[] test = formatString_.split("'");
boolean pair = true;
for (int i = 0; i < test.length; i++) {
if (pair) {
Matcher matcher = regex.matcher(test[i]);
maskString_ += matcher.replaceAll("#");
}
else {
for (int j = 0; j < test[i].length(); j++) {
maskString_ += "'" + test[i].substring(j, 1);
}
}
pair = !pair;
}
formatter = new MaskFormatter(maskString_);
</code>
Existe-t-il une solution plus directe, plus "regex" ?
Peux-tu donner d'autres exemples de tranformation (avant/après) que tu recherches ?
A+
TM
Bonjour,
Je transforme une chaine de format SimpleDateFormat de type "HH'H'mm" en un autre au format SimpleDateFormat de type "##'H##". Pour être plus précis, ce qui est entre ' est préservé mais 'MOT' par exemple devient 'M'O'T et en dehors des guillemets, seuls les caractères parmi GyMwWDdFEaHkKhmsSzZ sont changés en #. Je suis nul en regex, j'ai donc codé le bouzin comme ça: <code> Pattern regex = Pattern.compile("[GyMwWDdFEaHkKhmsSzZ]"); String[] test = formatString_.split("'"); boolean pair = true; for (int i = 0; i < test.length; i++) { if (pair) { Matcher matcher = regex.matcher(test[i]); maskString_ += matcher.replaceAll("#"); } else { for (int j = 0; j < test[i].length(); j++) { maskString_ += "'" + test[i].substring(j, 1); } } pair = !pair; } formatter = new MaskFormatter(maskString_); </code>
Existe-t-il une solution plus directe, plus "regex" ?
Merci d'avance ...
Pierre Maurette
Bonjour,
Peux-tu donner d'autres exemples de tranformation (avant/après) que tu recherches ?
En fait, c'est surtout par curiosité. En plus ce que j'ai en entrée est déjà formatté par ailleurs, je n'ai pas à me préoccuper par exemple d'un nombre impair de '. En revanche je n'ai peut-être pas été clair par rapport aux guillemets d'extrémité " qui ne font pas partie de la chaîne. Tout ce qui est entre 'ici' est transformé en 'i'c'i Pour le reste, les caractères parmi GyMwWDdFEaHkKhmsSzZ sont transformés en #, les autres ne sont pas modifiés. HH'MAURETTE'mmmm'PIERRE' deviendra ##'M'A'U'R'E'T'T'E####'P'I'E'R'R'E
Je ne pense pas que le cas se produise, mais: HH'MAURETTE'mCcm'PIERRE' deviendra ##'M'A'U'R'E'T'T'E#Cc#'P'I'E'R'R'E
Voilà ...
-- Pierre Maurette
Bonjour,
Peux-tu donner d'autres exemples de tranformation (avant/après) que tu
recherches ?
En fait, c'est surtout par curiosité. En plus ce que j'ai en entrée est
déjà formatté par ailleurs, je n'ai pas à me préoccuper par exemple
d'un nombre impair de '.
En revanche je n'ai peut-être pas été clair par rapport aux guillemets
d'extrémité " qui ne font pas partie de la chaîne.
Tout ce qui est entre 'ici' est transformé en 'i'c'i
Pour le reste, les caractères parmi GyMwWDdFEaHkKhmsSzZ sont
transformés en #, les autres ne sont pas modifiés.
HH'MAURETTE'mmmm'PIERRE' deviendra ##'M'A'U'R'E'T'T'E####'P'I'E'R'R'E
Je ne pense pas que le cas se produise, mais:
HH'MAURETTE'mCcm'PIERRE' deviendra ##'M'A'U'R'E'T'T'E#Cc#'P'I'E'R'R'E
Peux-tu donner d'autres exemples de tranformation (avant/après) que tu recherches ?
En fait, c'est surtout par curiosité. En plus ce que j'ai en entrée est déjà formatté par ailleurs, je n'ai pas à me préoccuper par exemple d'un nombre impair de '. En revanche je n'ai peut-être pas été clair par rapport aux guillemets d'extrémité " qui ne font pas partie de la chaîne. Tout ce qui est entre 'ici' est transformé en 'i'c'i Pour le reste, les caractères parmi GyMwWDdFEaHkKhmsSzZ sont transformés en #, les autres ne sont pas modifiés. HH'MAURETTE'mmmm'PIERRE' deviendra ##'M'A'U'R'E'T'T'E####'P'I'E'R'R'E
Je ne pense pas que le cas se produise, mais: HH'MAURETTE'mCcm'PIERRE' deviendra ##'M'A'U'R'E'T'T'E#Cc#'P'I'E'R'R'E