2015-11-05 71 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("\\[.*?\\]",""); 

你需要逃避[],因爲它們在正則表達式的特殊字符。