java - Double.parse 失败

标签 java

<分区>

我尝试执行时出现错误:

private Double isEmpty(String some) {

    LOGGER.info("Se ha llamado a isEmpty, valor: " + some);
    Double empty = null;

    try {
        if (some != null) {
            // Reemplazar porque nosotros usamos los . para los miles
            if(some.contains(".")) {
                some = some.replaceAll(".", "");
            }
            if(some.contains(",")) {
                some = some.replaceAll(",", ".");
            }
            empty = Double.parseDouble(some);
            LOGGER.info("Nuevo valor en isEmpty en Double: " + some);
        }
    } catch (Exception ex) {
        LOGGER.error("*******************");
        LOGGER.error("************ Falló la ejecución isEmpty *************");
        LOGGER.error(ex.getMessage() + ex);
        LOGGER.error(ex.getLocalizedMessage());
        LOGGER.error("*******************");
    }

    return empty;
}

在我的国家“1.000”是一千,在美国是一... 然后我将格式的所有字符替换为英文...

例如在我的国家:“2.035,75€” --> 2035 加 75 ... 我无法解析这个。我确实替换了 ->

“2035.75”表示 Java 承认这个数字。但是我收到错误 ->

 Se ha llamado a isEmpty, valor: 19.425
2018-10-16 ERROR 6197 --- [nio-8090-exec-5] Imp  : *******************
2018-10-16 ERROR 6197 --- [nio-8090-exec-5] Imp  : ************ Falló la ejecución isEmpty *************
2018-10-16 ERROR 6197 --- [nio-8090-exec-5] Imp  : empty Stringjava.lang.NumberFormatException: empty String
2018-10-16  ERROR 6197 --- [nio-8090-exec-5] Imp  : empty String
2018-10-16  ERROR 6197 --- [nio-8090-exec-5] Imp  : *******************

最佳答案

replaceAll 采用正则表达式,. 是匹配任何内容的正则表达式字符,因此 some.replaceAll(".", "")用什么代替一切。您需要转义 :

some = some.replaceAll("\\.", "");

或者简单地使用 replace insteadf,它不接受正则表达式,而是接受常规的 CharSequencechar:

some = some.replace(".", "");

请注意,如果您使用 IDE,您可能会在正则表达式部分获得高亮显示,我建议您使用一个:

enter image description here

关于java - Double.parse 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52831253/

相关文章:

java - hibernate 问题 `SessionFactory`

java - 如何返回游戏?完成游戏后

java - 通过 GWT 中的 JSONArray 进行缓慢迭代

java - bigtable需要锁吗?

java - 一旦 map 被 Hazelcast 填充,就从 map 中获取一个值

java - maven-eclipse-plugin 附加源目录不起作用

java - 在 Spring Boot 上动态设置 Spring AMQP 和 RabbitMQ 的主机

java - 获取页面的完整 html 源代码以制作网络爬虫

java - 将正则表达式与 "<"等符号一起使用

java - 启动eclipse时,出现错误 "Java was started but returned exit code=13"