2015-11-19 128 views
0

我必須測試幾個10位數值。如何刪除字符串中的重複字符串並修剪Java中的字符串中的空格?

  Value: 124324*3213*4324*44*3123**13* 
     Expected value: 1243243213432444312313 

到目前爲止,我已經能夠使用str.replace()函數替換星星。但我無法刪除刪除星號後創建的空白區域?

+0

你是如何刪除*的? – DBug

+2

請添加您嘗試過的代碼。通過刪除它而不是增加空間來替換某些東西:str.replace('*',''); – JFPicard

+0

使用這個: value = value.replace(value.charAt(lastIndexof('*'),'\ u0000'); –

回答

2

記住字符串在Java中是不可變的,所以你必須重新賦值:

String s = "124324*3213*4324*44*3123**13*"; 
s = s.replaceAll("\\*", ""); 

「\\ *」 - 是一個正則表達式,但你不必擔心這一點。重要的部分是「*」符號在正則表達式中有特殊含義,所以你必須用反斜槓來轉義它。要在Java字符串中創建反斜槓字符,您必須使用「\\」 - 因此最終表達式爲「\\ *」。

+0

s = s.replace(「*」,「」);也足夠了 – Taelsin

+0

@Taelsin你是對的,也許使用正則表達式對於這樣簡單的任務來說有點太複雜了。 – Keammoort

+0

非常感謝解決方案,有沒有一種方法可以刪除最後發生的*。就像刪除那個*的索引一樣。 –

2

嘗試是這樣的:

String value = "124324*3213*4324*44*3123**13*".replace("*", ""); 
+0

哦耶,或許你是對的,這是行得通的。 –

+0

@ GauthamHonnavara你試過了嗎?你看過文檔嗎? – Taelsin

+0

不,'String.replace'方法允許'char'或'CharSequence'參數:https:// docs。 oracle.com/javase/8/docs/api/java/lang/String.html#replace-java.lang.CharSequence-java.lang.CharSequence- –