在我的代码中,我从不同来源接收作为字符串的数值。其中一个消息来源正在向我发送这种值:
-6.535402781EX-05
经过几次测试,我知道 EX 格式不是由 Double.valueOf()
方法处理的。抛出 NumberFormatException
。
我找到了简单的解决方法:
String val = "-6.535402781EX-05".replace("X", "");
实际上它正在工作,但我不确定这是否是最好的解决方案。我还看到了EEX、EE和EXP。问题:如何针对这种边缘情况保护我的代码?
最佳答案
如果这些是唯一可能的值,您可能希望将 replaceAll
与正则表达式一起使用,而不是 replace
:
String[] val = {"-6.535402781EX-05","-6.535402781EEX-05","-6.535402781EE-05","-6.535402781EXP-05"};
for(String v :val){
System.out.println(v.replaceAll("[EXP]{2,}", "E"));
}
关于java - 带有 EX、EEX、EXP 或 EE 科学记数法的字符串要加倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55379650/