如何在java中汇总数字?

JDN*_*JDN 1 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 +  ".");
    }
}
Run Code Online (Sandbox Code Playgroud)

Nul*_*ion 6

你的问题被randomNumbers声明为int,所以当你使用+on on other int时,它会对整数求和而不是连接它们.

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

String userName = initials + randomNumber1 + randomNumber2 + randomNumber3;
Run Code Online (Sandbox Code Playgroud)

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

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

值得注意的是, Random.nextInt(n) 在0(包括)和n(不包括)之间生成一个随机数,所以 如果你想要一个0到9之间的数字,你可能应该这样做.nextInt(10) .