如何在java中汇总数字?

时间:2011-10-01 07:05:47

标签: java numbers

出于某种原因,当我运行以下代码时,程序打印出“JDN4”或“JDN16”,我总是希望它打印“JDN”,然后打印三个数字,范围从0到9;例如,“JDN123”或“JDN045”或“JDN206”。代码有什么问题?

import java.util.*;

public class Document2 {
    public static void main(String[] args) {
        String initials = "JDN";
        int randomNumbers;
        Random generator = new Random();
        int randomNumber1 = generator.nextInt(9);
        int randomNumber2 = generator.nextInt(9);
        int randomNumber3 = generator.nextInt(9);
        randomNumbers = randomNumber1 + randomNumber2 + randomNumber3;
        String userName = initials + randomNumbers;
        System.out.println("Your username is " + userName +  ".");
    }
}

7 个答案:

答案 0 :(得分:6)

您的问题randomNumbers被声明为int,因此当您在其他整数上使用+时,它会对整数求和而不是将它们连接起来。

所以,如果我们要使用你的方法,我们需要一个字符串:

String userName = initials + randomNumber1 + randomNumber2 + randomNumber3;

但是从0-999生成一个数字并用零填充它会更容易:

int randomNumber = generator.nextInt(1000);
String usernName = initials + String.format("%03d", randomNumber);

还有一点需要注意的是 Random.nextInt(n) 生成0(含)和n之间的随机数(不包括),所以你可能应该这样做< / em> .nextInt(10) 如果你想要一个0到9之间的数字。

答案 1 :(得分:3)

假设您有三个数字:

int randomNumber1 = 3;
int randomNumber2 = 4;
int randomNumber3 = 5;
int randomNumbers = randomNumber1 + randomNumber2 + randomNumber3;

您希望randomNumbers为345吗?或者你认为它是12?

现在试试这个:

String randomNumbers = "" + randomNumber1 + randomNumber2 + randomNumber3;

这次你得到什么?

答案 2 :(得分:3)

尝试,

String userName=String.format("%s%d%d%d",initials,randomNumber1,randomNumber2,randomNumber3);

答案 3 :(得分:2)

randomNumbers = randomNumber1 + randomNumber2 + randomNumber3;

你要添加数字,而不是连接它们。

建议的解决方案:只使用1个随机数

generator.nextInt(1000);

或者,你可以这样:

String userName = initials + randomNumer1 + randomNumber2 + randomNumber3;

但我几乎可以肯定你会得到相同数字的2倍甚至3倍,所以你应该使用第一种方法。

答案 4 :(得分:1)

您在这里添加数字。

randomNumbers = randomNumber1 + randomNumber2 + randomNumber3;

如果你想使用同样的方法来实现你想要的目标。

randomNumbers = randomNumber1 + (randomNumber2 * 10) + (randomNumber3 * 100);

答案 5 :(得分:1)

有什么问题,+运算符在int变量上使用时会添加,而不是连接。

使用

String randomNumbers = Integer.toString(randomNumber1) + Integer.toString(randomNumber2) + Integer.toString(randomNumber3);

将数字转换为字符串并将它们连接起来。

答案 6 :(得分:0)

您正在添加三个数字,最多只能给您27.您想要连接这些数字的字符串表示。

那就是说,为什么不简单地生成0到999之间的随机数?