tags:

views:

117

answers:

4

I have following problem,

Code:

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

Before removing 'a', result: Yeahh, I have no a idea what's happening now!

Actual Result: After removing 'a', result: Yehh, I hve no ide wht's hppening now!

Desired Result: Yeahh, I have no idea what's happening now!

Anyone can gimme some advices to achieve my desired result?

+5  A: 
a = a.replace(" a ", " ");

You don't need the replaceAll(..) method - it is if you want to use regex, and you don't need it, at least for this example.

If you need this for more complex examples than shown, then use replaceAll(..) and take a look at java.util.regex.Pattern. For example, matching all whitespace characters is done using \s

Bozho
+1  A: 

You were asking to replace every 'a', and that is what you got.

Some solutions:

  • replaceAll(" a ", " ") (note the spaces around the 'a')
  • use regex to chek for 'a' surrounded by word barriers (\b if I'm not mistaken)
Hans Kesting
the first won't work - it won't leave a interval : "noidea"
Bozho
You're right - fixed.
Hans Kesting
+2  A: 

you should identify the particular "a" to remove try thisa.replace(" a ", " ");

GustlyWind
A: 
a.replace("Yeahh", "Yehh");

Is it just replacing the a in Yeah? or the first a in the string?

jeff porter
he wants to replace the "a" in "no a idea"
Bozho