2010-03-22 140 views
3

我有以下問題,字符串的replaceAll方法(JAVA)

代碼:

String a="Yeahh, I have no a idea what's happening now!"; 
System.out.println(a); 
a=a.replaceAll("a", ""); 
System.out.println(a); 

在拆除 'A',結果是:

Yeahh,我沒有一個想法發生了什麼現在!

實際結果: 刪除 'A',結果後:

Yehh,我現在的hve沒有IDE西隧的hppening!

所需的結果:

Yeahh,我不知道現在發生了什麼事!

任何人都可以給我一些建議,以達到我想要的結果?

回答

8
a = a.replace(" a ", " "); 

你不需要replaceAll(..)方法 - 它是,如果你想使用正則表達式,你不需要它,至少在這個例子。

如果您需要更多複雜的示例,請使用replaceAll(..)並查看java.util.regex.Pattern。例如,匹配所有空格字符是使用\s

1

您要求替換每個'a',這就是您得到的。

一些解決方案:

  • 的replaceAll( 「A」,「「)(注意:圍繞 '一個' 空格)
  • 使用正則表達式來赤爲 'A' 的單詞障礙包圍(\ b如果我沒有記錯的話)
+1

第一個不會工作 - 它不會留下間隔:「noidea」 – Bozho 2010-03-22 12:03:32

+0

你是對的 - 修復。 – 2010-03-22 13:58:12

2

你應該確定具體的「一」刪除 試試這個a.replace(" a ", " ");

-2
a.replace("Yeahh", "Yehh"); 

它只是代替了呀?或字符串中的第一個?

+0

他想替換「沒有想法」中的「a」 – Bozho 2010-03-22 12:05:15

0

嘗試使用這樣的:

字符串str = 「!Yeahh,我沒有一個想法,現在正在發生的事情」;

String newStr = str.replaceAll(「a」,「」);