I have the following code:
NumberFormat numberInstance = NumberFormat.getNumberInstance();
System.out.println(numberInstance.parse("6.543E-4"));
System.out.println(numberInstance.parse("6.543e-4"));
which produces the following output:
6.543E-4
6.543
Is there a way to tweak a NumberFormat to recognize both an upper- and lower-case E as the exponent separator? Is there a best work-around? Anything better than running toUpper() on the input first?
The answer is "no", not directly.
Although using toUpperCase()
directly on the input is a small coding overhead to pay for consistency, there is this workaround:
NumberFormat numberInstance = new NumberFormat() {
@Override
public Number parse(String str) {
return super.parse(str.toUpperCase());
}
};
This is an anonymous class that overrides the parse()
method to imbue case insensitivity to its implementation.
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