将数字组合成一个Java变量

时间:2013-01-08 01:51:10

标签: java

我正在尝试创建一个程序,根据名为length的int,将一定数量的9添加到名为nines的变量中。例如,如果length为4,那么我希望nines等于9999.如果length为7,我希望nines等于9999999. {{1}的值}需要与length中的9个数相对应这是否可能,如果是,如何?

6 个答案:

答案 0 :(得分:9)

是的,有可能:观察你的目标数是10的长度,减1:

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

答案 1 :(得分:3)

你可以这样做:

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

或者,如果ninesint

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

答案 2 :(得分:1)

最简单的方法:

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

答案 3 :(得分:1)

您可以通过创建具有正确数字字符数的字符串来执行此操作,然后将其解析为int。像这样......

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

但请注意,int的大小有限制。我建议你......

  1. 也许尝试使用可容纳更多数字的内容,例如long(意识到long仍有限制,但其限制高于int)。
  2. 提供错误检查 - 如果字符太多或数字太大,则向用户显示错误,而不是使应用程序崩溃。

答案 4 :(得分:1)

如果您不反对包含其他库,可以使用Apache Commons Lang StringUtils.repeat http://commons.apache.org/lang/api-release/org/apache/commons/lang3/StringUtils.html#repeat(char,int)

String nines = StringUtils.repeat('9',length);

答案 5 :(得分:1)

因为我们正在......

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

String nines = new String(nineChars);