My question concerns the replaceAll method of String class.
My purpose is to replace all the em-dashes in a text with a basic "-". I know the unicode character of em-dash is \u2014.
I tried it in the following way:
String s = "asd – asd";
s = s.replaceAll("\u2014", "-");
Still, the em-dash is not replaced. What is it I'm doing wrong?
Minor edit after question edit:
You might not be using an em-dash at all. If you're not sure what you have, a nice solution is to simply find and replace all dashes... em or otherwise. Take a look at this answer, you can try to use the Unicode dash punctuation property for all dashes ==> \\p{Pd}
String s = "asd – asd";
s = s.replaceAll("\\p{Pd}", "-");
Working example replacing an em dash and regular dash both with the above code.
References:public String replaceAll(String regex, String replacement)
Unicode Regular Expressions
Based on what you posted, the problem may not actually lie with your code, but with your assumed dash. What you have looks like an en dash (width of a capital N) rather than an em dash (width of a capital M). The Unicode for the en dash is U+2013, try using that instead and see if it updates properly.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With