gpt4 book ai didi

java - 传递的是整数,但预期是 Char 值?

转载 作者:行者123 更新时间:2023-12-02 03:14:09 25 4
gpt4 key购买 nike

嗨,我试图用 3 个随机字母制作一个字母猜谜游戏,当我尝试使用下面的代码获取一个值时,它总是以 int 的形式返回到另一个程序,下面我试图将它作为字母接收,但可以想不通。

 import java.util.Random;

public class CodeLetter {
private char letterValue;
int count = 8;
Random rnd = new Random ();


public char codeLetter(){

letterValue = (char)(rnd.nextInt(5)+'A');
System.out.println(letterValue);
return letterValue;


}

}

使用line调用上述代码的代码

  letter1 = codeLetter.codeLetter();

但是一旦它被打印到屏幕上,它仍然保存一个 int 值,而不是 char。该程序需要两个类作为要求

public class CodeBreaker {
private char letter1;
private char letter2;
private char letter3;

CodeLetter codeLetter = new CodeLetter();


public void CodeBreaker(){
//Welcome Screen
System.out.println("Welcome to CODEBREAKER ");
System.out.println("you have 6 tries to guess the secret 3 letter code.");
System.out.println("The letters Range from A to E");
System.out.println("Goodluck");
System.out.println("The code has no repeat letters");
//end
letter1 = codeLetter.codeLetter();
letter2 = codeLetter.codeLetter();
letter3 = codeLetter.codeLetter();

System.out.println(letter1 + letter2 + letter3);
}
/*public boolean done(){

}
/*private boolean isValid*char){
//- Is the given letter valid?
}*/

public void getGuess(/*int*/){
//- Get guess #
}
public void checkGuess(){
//- Verify the guess
}
public void display(){
//- Display the secret code
}

}

最佳答案

我已经运行了你的程序。我发现了以下输出。

Welcome to CODEBREAKER 
you have 6 tries to guess the secret 3 letter code.
The letters Range from A to E
Goodluck
The code has no repeat letters
B
B
C
199

如果我理解正确的话您对199有疑问。我假设您想要 BBC 而不是 199。这是因为你使用+符号与char类型,它会隐式转换为整数并进行算术运算。因此,以下行 System.out.println(letter1 + letter2 + letter3); 出现问题。您可以分别打印那些不同的字符。

顺便说一句,您的 codeletter() 方法按预期返回 char。对于这种语言行为,您还可以研究 Strongly vs Weakly type

关于java - 传递的是整数,但预期是 Char 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40565782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com