2015-11-05 72 views
2

我有以下字符串文本:如何从一个字符串去掉一段文字

/Return/ReturnData/IRS1040/DependentWorksheetPP[1]/DependentCodePP

我想脱光[1]指数,所以我只是有:

/Return/ReturnData/IRS1040/DependentWorksheetPP/DependentCodePP

我该如何在Java中完成这项工作?

string.replaceAll("[?]","");

这似乎并没有工作。

任何帮助或信息,将不胜感激

+1

字符串是不可变Java中, '的replaceAll' 将返回具有更换一个新的字符串。请参阅[String.replaceAll](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replaceAll(java.lang.String,%20java.lang.String))。可能的重复:http://stackoverflow.com/questions/10951333/why-isnt-the-string-value-changed-after-string-replace-in-java。这是你遇到的问题吗? – Xiao

+0

用空字符串替换'\ [\ d + \]' – Tushar

回答

4

首先,在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("\\[.*?\\]",""); 

你需要逃避[],因为它们在正则表达式的特殊字符。

相关问题