gpt4 book ai didi

java.util.regex.PatternSyntaxException : Unclosed character class near index 0

转载 作者:搜寻专家 更新时间:2023-10-30 21:40:27 26 4
gpt4 key购买 nike

我正在尝试替换我的字符串中的所有方括号。

这是我的程序

   package com;

import java.util.ArrayList;

import org.apache.commons.lang3.StringUtils;
import org.json.JSONException;

public class Teste {

/**
* @param args
* @throws JSONException
*/
public static void main(String[] args) throws JSONException {


String str = "[Fountain#Apple#Big(7)]";

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

System.out.println(str);

}

}

但是我得到了

Exception in thread "main" 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)
at com.Teste.main(Teste.java:19)

谁能告诉我如何替换所有方括号??

最佳答案

String.replaceAll 采用正则表达式模式,但您根本不需要正则表达式。您可以使用:

str = str.replace("[", "").replace("]", "");

或者如果您愿意,您可以使用正则表达式,一次性替换两者:

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

这就是说“用空字符串替换集合中的任何字符(开方括号,闭方括号)。\\ 是为了转义集合中的方括号。

请注意,您需要使用 replace(或 replaceAll)的结果 - 字符串在 Java 中是不可变的,因此任何方法如 replace不要修改现有 字符串,它们会返回对具有相关修改的 字符串的引用。

关于java.util.regex.PatternSyntaxException : Unclosed character class near index 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24465134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com