如何从一个字符串去掉一段文字
问题描述:
我有以下字符串文本:如何从一个字符串去掉一段文字
/Return/ReturnData/IRS1040/DependentWorksheetPP[1]/DependentCodePP
我想脱光[1]
指数,所以我只是有:
/Return/ReturnData/IRS1040/DependentWorksheetPP/DependentCodePP
我该如何在Java中完成这项工作?
string.replaceAll("[?]","");
这似乎并没有工作。
任何帮助或信息,将不胜感激
答
首先,在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
答
string.replaceAll("\\[.*?\\]","");
你需要逃避[]
,因为它们在正则表达式的特殊字符。
字符串是不可变Java中, '的replaceAll' 将返回具有更换一个新的字符串。请参阅[String.replaceAll](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replaceAll(java.lang.String,%20java.lang.String))。可能的重复:http://*.com/questions/10951333/why-isnt-the-string-value-changed-after-string-replace-in-java。这是你遇到的问题吗? – Xiao
用空字符串替换'\ [\ d + \]' – Tushar