-1

介意看看这段代码吗?它给了我一个错误,我不知道该怎么做。它的课程和任何帮助将不胜感激。我必须制作一个随机生成的三位数号码的彩票程序,然后用户可以在多种组合中获胜。请参阅代码以进行说明。

    import java.util.Scanner; 
public class Lottery 
{ 
public static void main(String[] args) 
{ 
//declare and initialized variables and objects 
Scanner in = new Scanner(System.in); 

String lotteryNum = ""; 
String userGuess = ""; 

for(int tries = 0; tries >= 0; tries++) 
{ 

int randomNum1 = (int)(Math.random() * 10); 
int randomNum2 = (int)(Math.random() * 10); 
int randomNum3 = (int)(Math.random() * 10); 

int computerNum1 = getNumericValue (randomNum1.charAt(0) ); 
int computerNum2 = getNumericValue (randomNum2.charAt(1) ); 
int computerNum3 = getNumericValue (randomNum3.charAt(2) ); 

String randomNum = "" + randomNum1 + randomNum2 + randomNum3; 

System.out.print("Please enter three numbers:"); 
int num1 = in.nextInt(); 
int num2 = in.nextInt(); 
int num3 = in.nextInt(); 



if (num1 == computerNum1 && num2 == computerNum2) 
{ 
System.out.println("You win!"); 

} 
else if (num2 == computerNum2 && num3 == computerNum3) 
{     
System.out.println("You Win!"); 

}  
else if (num1 == computerNum1 && num2 ==computerNum2 && num3 == computerNum3) 
    {
    System.out.println("Sorry, You Lost");
    }
    }}}
4

2 回答 2

4

这不起作用:randomNum1.charAt(0)

int 不是字符串,甚至不是对象,因此您不能在其上调用方法。它是一个原语,像所有原语一样没有方法。它只是

相反,我认为您可以使用 int 除法和 mod 运算符来获得您想要的东西,但是为了能够确定,您应该发布您的实际分配说明,因为您对最终目标的描述对我来说并不清晰。

如果您想要的只是 3 个随机数,从 0 到 9,那么只需使用您已经拥有的数字,无需尝试进一步操作它们。

于 2013-09-27T00:34:34.497 回答
0

您不能调用charAtan int,因为它不是字符串。尝试:

String.valueOf(randomNum1).charAt(0)
于 2013-09-27T00:35:13.230 回答