出于某种原因,当我运行以下代码时,程序打印出"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)
你的问题被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) .
| 归档时间: |
|
| 查看次数: |
1628 次 |
| 最近记录: |