Comment puis-je couper les caractères en Java?
par exemple
String j = "\joe\jill\".Trim(new char[] {"\"});
j devrait être
"joe\jill"
String j = "jack\joe\jill\".Trim("jack");
j devrait être
"\joe\jill\"
etc
Comment puis-je couper les caractères en Java?
par exemple
String j = "\joe\jill\".Trim(new char[] {"\"});
j devrait être
"joe\jill"
String j = "jack\joe\jill\".Trim("jack");
j devrait être
"\joe\jill\"
etc
Apache Commons a une grande StringUtils classe. En StringUtils
il y a un strip(String, String)
méthode qui permettra de faire ce que vous voulez.
Je recommande fortement d'utiliser Apache Commons de toute façon, surtout les Collections et Lang bibliothèques.
De ce fait ce que vous voulez:
public static void main (String[] args) {
String a = "\\joe\\jill\\";
String b = a.replaceAll("\\\\$", "").replaceAll("^\\\\", "");
System.out.println(b);
}
L' $
est utilisé pour supprimer la séquence à la fin de la chaîne. L' ^
est utilisé pour supprimer dans le debut.
Comme alternative, vous pouvez utiliser la syntaxe suivante:
String b = a.replaceAll("\\\\$|^\\\\", "");
L' |
"signifie " ou".
Dans le cas où vous souhaitez couper d'autres caractères, juste adapter la regex:
String b = a.replaceAll("y$|^x", ""); // will remove all the y from the end and x from the beggining
Pour l'instant, je préfère la deuxième. Colins' Apache commons-lang réponse, mais une fois que Google goyave, les bibliothèques est libéré, le CharMatcher classe à faire ce que vous voulez bien:
String j = CharMatcher.is('\\').trimFrom("\\joe\\jill\\");
// j is now joe\jill
CharMatcher est très simple + puissant ensemble d'Api ainsi que certaines constantes prédéfinies qui rend la manipulation très facile:
CharMatcher.is(':').countIn("a:b:c"); // returns 2
CharMatcher.isNot(':').countIn("a:b:c"); // returns 3
CharMatcher.inRange('a', 'b').countIn("a:b:c"); // returns 2
CharMatcher.DIGIT.retainFrom("a12b34"); // returns "1234"
CharMatcher.ASCII.negate().removeFrom("a®¶b"); // returns "ab";
etc. Très sympa tout ça.
Voici un autre non-regexp, non-super-génial, non-super-optimisé, mais très facile à comprendre non-externe-lib solution:
public static String trimStringByString(String text, String trimBy) {
int beginIndex = 0;
int endIndex = text.length();
while (text.substring(beginIndex, endIndex).startsWith(trimBy)) {
beginIndex += trimBy.length();
}
while (text.substring(beginIndex, endIndex).endsWith(trimBy)) {
endIndex -= trimBy.length();
}
return text.substring(beginIndex, endIndex);
}
Utilisation:
String trimmedString = trimStringByString(stringToTrim, "/");
Vous pouvez utiliser removeStart
et removeEnd
de Apache Commons Lang StringUtils
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.