+ 2
[SOLVED] I can't understand why replaceAll() method does not work as I expect.
I just want replace the very last ".com" to "" but I couldn't figure out what is this weird output and why it happens. https://code.sololearn.com/chlhH32EvGjI/?ref=app
3 Answers
+ 4
I think replaceAll takes a regex instead of a normal string. So ".com" means any letter and "com" instead of a dot and "com".
But if you put two backslashes (two because one backslash makes an escape character) before ".", it does what you want.
I also recommend removing only from the end of the string because "hamid.com@sololearn.com" might be a valid email.
You can check this out to learn more about regular expressions: https://www.w3schools.com/java/java_regex.asp
+ 3
While regex is awesome it can also be annoying! .replaceAll() uses a regex match to find and replace any string that matches the pattern.
In regex, the charafter "." means any character, so the regex match "dcom" as well as your ".com".
To fix this your regex should look like this: "[.]com"
+ 3
thank you all
both solution worked quite perfect.
although I ask a simple short question but I gotta confess that somehow thousands of my questions SOLVED.
really thankful guys