Je veux supprimer les crochets d'une chaîne, mais je ne sais pas comment.
String str = "[Chrissman-@1]";
str = replaceAll("\\[\\]", "");
String[] temp = str.split("-@");
System.out.println("Nickname: " + temp[0] + " | Power: " + temp[1]);
Mais mon résultat est: [Chrissman | 1] Les crochets ne sont pas supprimés.
J'ai essayé d'utiliser une regex différente: "\\[.*?\\]"
, "\\[\\d+\\]"
mais le résultat est identique, les crochets sont toujours attachés à la chaîne.
Modifier:
J'ai essayé:
str.replaceAll("]", "");
str.replaceAll("[", "");
Et maintenant j'obtiens:
Exception in thread "Thread-4" Java.util.regex.PatternSyntaxException: Unclosed character class near index 0
[
^
at Java.util.regex.Pattern.error(Unknown Source)
at Java.util.regex.Pattern.clazz(Unknown Source)
at Java.util.regex.Pattern.sequence(Unknown Source)
at Java.util.regex.Pattern.expr(Unknown Source)
at Java.util.regex.Pattern.compile(Unknown Source)
at Java.util.regex.Pattern.<init>(Unknown Source)
at Java.util.regex.Pattern.compile(Unknown Source)
at Java.lang.String.replaceAll(Unknown Source)
La méthode replaceAll tente de faire correspondre le littéral String []
qui n’existe pas dans String
, essayez de remplacer ces éléments séparément.
String str = "[Chrissman-@1]";
str = str.replaceAll("\\[", "").replaceAll("\\]","");
Votre expression rationnelle correspond (et supprime) uniquement les crochets suivants. Utilisez ceci à la place:
str = str.replaceAll("\\[|\\]", "");
Si vous souhaitez uniquement remplacer les paires de crochets par du contenu, vous pouvez utiliser ceci:
str = str.replaceAll("\\[(.*?)\\]", "$1");
Vous essayez actuellement de supprimer exact string []
- deux crochets avec rien entre eux. Au lieu de cela, vous voulez supprimer tous les [
et retirez séparément tous les ]
.
Personnellement, j’éviterais d’utiliser replaceAll
ici car cela introduit plus de confusion en raison de la partie regex - j’utiliserais:
String replaced = original.replace("[", "").replace("]", "");
Utilisez uniquement les méthodes qui prennent des expressions régulières si vous vraiment voulez faire un filtrage complet. Lorsque vous souhaitez simplement remplacer toutes les occurrences d'une chaîne fixe, replace
est plus simple à lire et à comprendre.
(Il existe des approches alternatives qui utilisent la forme d'expression régulière et correspondent vraiment aux modèles, mais je pense que le code ci-dessus est considérablement plus simple.)
utilisez regex [\\[\\]]
-
String str = "[Chrissman-@1]";
String[] temp = str.replaceAll("[\\[\\]]", "").split("-@");
System.out.println("Nickname: " + temp[0] + " | Power: " + temp[1]);
sortie -
Nickname: Chrissman | Power: 1
Vous pouvez aussi le faire comme ceci:
String data = "[yourdata]";
String regex = "\\[|\\]";
data = data .replaceAll(regex, "");
System.out.println(data);
Use this line:) String result = strCurBal.replaceAll("[(" what ever u need to remove ")]", "");
String strCurBal = "(+)3428";
Log.e("Agilanbu before omit ", strCurBal);
String result = strCurBal.replaceAll("[()]", ""); // () removing special characters from string
Log.e("Agilanbu after omit ", result);
o/p :
Agilanbu before omit : (+)3428
Agilanbu after omit : +3428
String finalVal = result.replaceAll("[+]", ""); // + removing special characters from string
Log.e("Agilanbu finalVal ", finalVal);
o/p
Agilanbu finalVal : 3428
String finalVal1 = result.replaceAll("[+]", "-"); // insert | append | replace the special characters from string
Log.e("Agilanbu finalVal ", finalVal1);
o/p
Agilanbu finalVal : -3428 // replacing the + symbol to -
String str, str1;
Scanner sc = new Scanner(System.in);
System.out.print("Enter a String : ");
str = sc.nextLine();
str1 = str.replaceAll("[aeiouAEIOU]", "");
System.out.print(str1);