代码之家  ›  专栏  ›  技术社区  ›  Gennady Shumakher

Java中带正/负前缀的字符串解析数

  •  8
  • Gennady Shumakher  · 技术社区  · 14 年前

    在Java中,从字符串中解析数字是非常直接的,也就是说,用整数。 “N” “-N” ,但不幸的是,它无法以 “+N” .

    那么,如果Java中包含了正或负前缀,那么从Java中解析数字的最有效的方法是: “+N” “-N” ?

    2 回复  |  直到 9 年前
        1
  •  10
  •   Carl Manaster pakore    14 年前
    Integer.parseInt(s.replace("+", ""));
    

    事实上,有很多gotcha使用整数来解析这样的数字,因为整数有非常具体的大小界限和格式(“1000000.00”)不是这样解析的,但我将您的问题视为整数。ParseInt很好地满足了您的需要,您只需处理数据中的+即可。

        2
  •  0
  •   Sufiyan Ghori    9 年前

    只是FYA,这在Java 7中已经被固定了。

    从, Java SE8 for the Really Impatient

    之前 JDK 1.7 ,以下代码段的结果是什么?

    double x = Double.parseDouble("+1.0");

    int n = Integer.parseInt("+1");

    如果你知道 答: +1.0 一直是一个有效的浮点数,但是 直到Java 7, +1 不是有效的整数。这个现在已经修好了 对于构造 int , long , short , byte , 和 BigInteger 字符串中的值。他们比你多 可以思考。除了解析(int long short byte),还有 解码处理十六进制和八进制输入的方法,以及 valueOf 生成包装对象的方法。这个 BigInteger(String) 也会更新构造函数。