Java Integer添加前导零?

时间:2012-01-02 00:28:59

标签: java integer int

我需要将前导零添加到数组中以供数学使用。 具体来说,我正在做一些添加两个大数字的东西。数字存储为int数组,其中数组的每个元素都是5位数。一个例子是 53498 93784 45891 45982 48933 58947 我需要在此添加另一个,比方说, 23584 42389 32479 34289 39281 48237 要添加它们,我将取两者的最后5位数字并添加它们58947 + 48237 这给出107184.然后我将进位值设置为1并减去100,000。

这是问题所在: 它将int设置为7184,然后总和表示... 882157184而不是8821507184,产生(非常)不正确的总和。 那么如何让我的Sum int数组说88215 07184? 如果这不可能,请列出获得相同结果的另一种方法,可能是字符串而不是int数组? 如果可能的话,请尝试找到一种方法,使其具有带有int值的前导0。

3 个答案:

答案 0 :(得分:15)

您是否考虑过使用Java的BigInteger类?

e.g。

BigInteger quiteBig = new BigInteger("534989378445891459824893358947");

答案 1 :(得分:4)

中没有前导零(除非你当然是在谈论八进制文字)。在内部,int是32位,就是这样。

您可能需要格式化。要解决输出,您可以尝试String.format("%05d", x);,有关详情,请参阅javadoc

答案 2 :(得分:0)

你可以从这样的事情开始:

class FiveDigitInteger {
  private static final DecimalFormat format = new DecimalFormat("00000");
  final int i;

  public FiveDigitInteger ( int i ) {
    this.i = i;
  }

  public int getInteger () {
    return i;
  }

  public String toString () {
    return format.format(i);
  }
}

并添加各种math方法,例如:

  public FiveDigitInteger add ( int j ) {
    return new FiveDigitInteger ( i + j );
  }