Quelle est l'expression régulière pour . et .. ?
if(key.matches(".")) {
do something
}
Les correspondances accepte String qui demande une expression régulière. Maintenant, je dois supprimer tous les DOT dans ma MAP.
Quelle est l'expression régulière pour . et .. ?
if(key.matches(".")) {
do something
}
Les correspondances accepte String qui demande une expression régulière. Maintenant, je dois supprimer tous les DOT dans ma MAP.
Utilisez String.Replace()
si vous souhaitez simplement remplacer les points de la chaîne. L'alternative serait d'utiliser Pattern-Matcher
avec StringBuilder
, cela vous donne plus de flexibilité car vous pouvez trouver des groupes entre les points. Si vous utilisez ce dernier, je vous recommanderais d'ignorer les entrées vides avec "\\.+"
.
public static int count(String str, String regex) {
int i = 0;
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
while (m.find()) {
m.group();
i++;
}
return i;
}
public static void main(String[] args) {
int i = 0, j = 0, k = 0;
String str = "-.-..-...-.-.--..-k....k...k..k.k-.-";
// this will just remove dots
System.out.println(str.replaceAll("\\.", ""));
// this will just remove sequences of ".." dots
System.out.println(str.replaceAll("\\.{2}", ""));
// this will just remove sequences of dots, and gets
// multiple of dots as 1
System.out.println(str.replaceAll("\\.+", ""));
/* for this to be more obvious, consider following */
System.out.println(count(str, "\\."));
System.out.println(count(str, "\\.{2}"));
System.out.println(count(str, "\\.+"));
}
La sortie sera :
--------kkkkk--
-.--.-.-.---kk.kk.k-.-
--------kkkkk--
21
7
11
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.