str = str.replace(fraction, replacement[1] || replacement[0]);
I want to replace with [1] if [1] is not "" or undefined or null, or else replace with [0] if [1] is "" or undefined or null. I know I can do this with a 3-5 lines of if else, but can I do it in one like very short like I wrote above in Java?
CodePudding user response:
Java is not a very concise language by nature. The most concise way to do what you're asking is probably something like markspace's comment:
str = str.replace(fraction, (replacement[1] != null && !replacement[1].isBlank()) ? replacement[1] : replacement[0]);
This uses a ternary operator to select between replacement[1]
and replacement[0]
.
For a middle ground, you could also separate this ternary operation onto a separate line:
char replacementChar = (replacement[1] != null && !replacement[1].isBlank()) ? replacement[1] : replacement[0];
str = str.replace(fraction, replacementChar);
CodePudding user response:
Thanks @markspace for your answer!
I solved it with
str = str.replaceAll(fraction, replacement[1] != null && !replacement[1].isEmpty() ? replacement[1] : replacement[0])