I have a string of comma separated words e.g. "a, b, c"
.
I need to replace the last comma instance with “and”, to make it look like "a, b and c"
.
I've tried using replaceFirst like this:
"a, b, c".replaceFirst("(,)[^,]+$", " and")
But it doesn't work. It replaces everything after the last comma with “and” rather than just the comma producing "a, b and"
.
How to make it work?
I'm on java8.
Ps. I thought that it's obvious, but it seems like I need to clarify, that I'm looking for a generic solution that works with any number of comma separated tokens, i.e. 'a, b, ...., c'
I think the replaceFirst
is better than replaceAll
for you because you want to replace only once not all, and it run faster than replaceAll
.
using ${number}
to capturing groups.
"a, b, c".replaceFirst(",([^,]+)$", " and$1"); // return "a, b and c"
using positive lookahead:
"a, b, c".replaceFirst(",(?=[^,]+$)", " and"); // return "a, b and c"
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