将数字组合成一个Java变量

3
我正在尝试编写一个程序,根据名为length的整数,在变量nines中添加一定数量的数字9。例如,如果length是4,则我希望nines等于9999。如果length是7,则我希望nines等于9999999。需要注意的是,nines中数字9的数量应该与length的值相同。请问这是否可行?如果可以,怎样实现?

5
用字符串创建,然后解析回来。但要注意,整数不能容纳太多位数。 - A--C
那也可以。谢谢。 - Piccolo
6个回答

9

是的,这是可能的:请注意,您的目标数字是长度的10次方减一:

int res = Math.pow(10, length) - 1;

哇!太棒了!谢谢,这个完美地解决了我的问题!我会尽快接受的。 - Piccolo
2
length > 9 时,这样做效果不会很好(最大 int 值小于 10^10)。 - Ted Hopp
1
@TedHopp BigInteger 可以帮忙解决这个问题 :) - Sergey Kalinichenko

3

你可以这样做:

StringBuilder sb = new StringBuilder();
while (length-- > 0) {
    sb.append('9');
]
nines = sb.toString();

如果nines是一个int类型:

nines = 0;
while (length-- > 0) {
    nines = 10 * nines + 9;
} 

1

最简单的方法:

String nines = "";
for(int i = 0; i < length; i++) {
  nines += "9";
}
return Integer.parseInt(nines);

1

您可以通过创建一个包含正确数量数字字符的字符串,然后将其解析为 int 来实现此目的。就像这样...

String bigNumber = "";
for (int i=0;i<length;i++){
    bigNumber += "9";
    }
int intNumber = Integer.parseInt(bigNumber);

然而,需要注意的是 int 的大小是有限制的。我建议您...

  1. 尝试使用可以容纳更大数字的数据类型,例如 long(请注意,long 仍然有限制,但比 int 更高)。
  2. 提供错误检查 - 如果字符过多或数字太大,请向用户显示错误信息,而不是使应用程序崩溃。

1

1

既然我们在这个话题上...

char[] nineChars = new char[length];
Arrays.fill(nineChars, '9');

String nines = new String(nineChars);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接