代码之家  ›  专栏  ›  技术社区  ›  Jorn

BigInteger.valueOf()用于非常大的数字?

  •  3
  • Jorn  · 技术社区  · 16 年前

    在Java中,将50位字符串转换为BigInteger的最佳方法是什么?它没有valueOf(String)方法,我无法转换为Long,因为它太小了。

    4 回复  |  直到 16 年前
        1
  •  14
  •   ChssPly76    16 年前

    它确实有一个 BigInteger(String) 构造函数:-)

    String S = "12345678901234567890123456789012345678901234567890";
    BigInteger bi = new BigInteger(S);
    
        2
  •  2
  •   John M    16 年前

    BigInteger bi = new BigInteger(my50DigitString);
    

    所有这些Xxx.valueOf()方法都是构造函数的替代方法,因为它们允许返回共享的缓存副本。根据定义,构造函数每次都返回一个新实例。valueOf()是一个很好的优化,但是设计者显然觉得提供BigInteger.valueOf(String)方法并不有趣。在这种情况下,您必须使用一个构造函数。

        3
  •  1
  •   sepp2k    16 年前

    BigInteger有一个接受字符串的构造函数。

        4
  •  1
  •   David Rabinowitz    16 年前

    你试过了吗

    BigInteger i = new BigInteger(s);