【问题标题】:Error while parsing GEO coordinates in a String [duplicate]解析字符串中的 GEO 坐标时出错 [重复]
【发布时间】:2013-05-05 22:12:22
【问题描述】:

我正在尝试在 java 中解析字符串 a ,这是我得到的错误。

<gx:coord>10,8638931 44,6106521 0</gx:coord>

 

Exception in thread "main" java.lang.NumberFormatException: For input string: "10,8638931"
    at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
    at java.lang.Double.parseDouble(Unknown Source)
    at parser.history.Main.main(Main.java:28)

谁能告诉我为什么?

【问题讨论】:

    标签: java parsing kml


    【解决方案1】:

    Double.parseDouble 方法不接受带有逗号的数字。输入字符串必须符合javadocs for Double.valueOf(String) 中描述的语法。

    如果您想解析其他格式的数字,您应该查看DecimalFormat 类,特别是它的parse 方法。根据具体情况,您可以从 Locale 中获取 DecimalFormat 实例...或使用给定的模式和符号专门创建它。

    【讨论】:

    • 我明白了。非常感谢:-)
    【解决方案2】:

    java 使用 dot 而不是逗号来解析浮点数。

    打电话

    String.replace(',','.')
    

    在调用 Double.parseDouble 之前

    【讨论】:

    • 更好的方法是使用正确的Locale - 请参阅上面的评论 Fox32
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 2017-09-26
    • 2018-03-14
    • 1970-01-01
    • 2015-10-09
    • 2012-03-23
    • 1970-01-01
    相关资源
    最近更新 更多