将多点数转换为单点双精度数



我的输入是:

21.000.00
21,000.00
4.102.102.00
4,102,102.00

输出应为:

21000.00
21000.00
4102102.00
4102102.00

我只想保留最后一个句点,因为我将此值传递给Double.valueOf(value)

我可以轻松地用空字符串替换逗号以摆脱它,但句点很棘手。

摆脱第一个时期并保留最后一个时期的最快方法是什么?

我正在Java/Android上解决这个问题

我不知道

为什么你的输入会采用这种格式,但如果是这种情况,这样的东西会解析它:

  String s = "4.102.102.00";
  s = s.replaceAll(",", "");
  String s2 = "";
  int lastDot = s.lastIndexOf('.');
  if (lastDot >= 0) {
    s2 = s.substring(lastDot);
    s = s.substring(0, lastDot).replaceAll("\.", "");
  }
  s = s + s2;
  System.out.println(s);
  System.out.println(Double.parseDouble(s));

最新更新