如何从字符串中删除一部分文本

3
我有以下字符串文本:
/Return/ReturnData/IRS1040/DependentWorksheetPP[1]/DependentCodePP
我想去掉索引 [1],只留下如下内容:
/Return/ReturnData/IRS1040/DependentWorksheetPP/DependentCodePP
在Java中,您可以使用以下代码实现此功能:
string.replaceAll("\\[\\d+\\]", "");
但是,您提供的代码 string.replaceAll("[?]","") 不起作用。希望这可以帮助到您。

1
Java中的字符串是不可变的,'replaceAll'将返回一个具有替换内容的新字符串。请参阅String.replaceAll。可能重复:http://stackoverflow.com/questions/10951333/why-isnt-the-string-value-changed-after-string-replace-in-java。这是你遇到的问题吗? - Xiao
\[\d+\]替换为空字符串。 - Tushar
2个回答

5

首先,在Java中,String是不可变的(因此请确保分配replaceAll的结果)。接下来,在正则表达式中,[]是有意义的(请对它们进行转义)。而\\d+表示一个或多个数字。例如:

String str = "/Return/ReturnData/IRS1040/DependentWorksheetPP[1]/"
    + "DependentCodePP";
str = str.replaceAll("\\[\\d+\\]", "");
System.out.println(str);

输出结果为

/Return/ReturnData/IRS1040/DependentWorksheetPP/DependentCodePP

3
string.replaceAll("\\[.*?\\]","");

在正则表达式中,[]是特殊字符,你需要进行转义。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接