1. ホーム
  2. java

Javaで文字列中のすべての角括弧を置換する

2023-10-02 12:25:32

質問

文字列から角括弧を削除したいのですが、方法がわかりません。

String str = "[Chrissman-@1]";
str = replaceAll("\\[\\]", "");

String[] temp = str.split("-@");
System.out.println("Nickname: " + temp[0] + " | Power: " + temp[1]);

でも、私の結果は [クリスマン|1】です。] 角括弧は削除されません。

別の正規表現を使ってみました。 "\\[.*?\\]" , "\\[\\d+\\]" のようにしても、結果は同じで、角括弧はまだ文字列の上に付いています。

編集してください。

試してみました。

str.replaceAll("]", "");
str.replaceAll("[", "");

そして今、私が手に入れたのは

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)

どのように解決するのですか?

replaceAll メソッドは String リテラルをマッチさせようとしています。 [] の中に存在しない String を個別に置き換えてみてください。

String str = "[Chrissman-@1]";
str = str.replaceAll("\\[", "").replaceAll("\\]","");