将Inttr转换为String的子串错误

时间:2014-10-16 22:36:06

标签: java

for (int i=0; i < 3; i++) {
    lotteryNumber = (int)(Math.random()*10);
    System.out.print(lotteryNumber);

    lotteryNumberFinal = Integer.toString(lotteryNumber);
} 

System.out.println(lotteryNumberFinal);  

我正在试图找出如何将3个随机数转换为字符串然后能够将每个字符串子化为不同的变量,但我的 lotteryNumberFinal 字符串始终只设置为最后一个随机数而不是全部三个。

这是我的意思的照片:

enter image description here

2 个答案:

答案 0 :(得分:2)

最简单的方法:

lotteryNumberFinal = "";
for(int i=0; i < 3; i++) {
        lotteryNumber = (int)(Math.random()*10);
        System.out.print(lotteryNumber);

        lotteryNumberFinal += lotteryNumber;
    } 

System.out.println(lotteryNumberFinal); 

请注意,现在您不需要进行Integer.toString转换,因为当您将其转换为另一个String时,int将被强制转换为String表示形式。

然后,您可以根据需要使用子字符串来获取单个数字......但是数组是正确的方法。

答案 1 :(得分:0)

您正在for循环中分配lotteryNumber,这是为什么它覆盖该值并保留最后一个值。在你的情况下,你想要一个lotteryNumberFinal变量中的所有lotteryNumber你可以使用下面的代码,在这种情况下,你也不需要显式的整数到字符串转换 -

    String lotteryNumberFinal = "";  //define String variable where you want to concatenate your lotterNumber. 

    for(int i=0; i < 3; i++) {
        lotteryNumber = (int)(Math.random()*10);

        System.out.print(lotteryNumber);

        lotteryNumberFinal += lotteryNumber; // in this case you don't need to do Integer to String conversion because it will concatenate your value in a String value so it will automatically converted into string.
}