无法在基本类型char上调用equals(char)
我是编程的新手,并试图坚持一个基本的猜谜游戏,但我有这个错误。 需要一些帮助,因为我已经将’猜测’设置为char
,然后想要将它与字符数组进行比较,但尝试了几种不同的方法,但还没有快乐。
它给出了底部if语句的错误:
(guess.equals(wordContainer[j]))
提前致谢。
我的代码:
import java.util.Scanner; public class GuessingGame { public static void main(String args[]) { Scanner keyboard = new Scanner(System.in); String wordArray[] = {"aardvarks", "determine", "different", "greatness", "miserable", "trappings", "valuables", "xylophone"}; double rand = Math.random() * 8; int x = 0; x = (int)rand; System.out.println(x); String word = wordArray[x]; int wordCount = word.length(); System.out.println(word); // System.out.println(wordCount); char wordContainer[] = new char[wordCount]; char wordHiddenContainer[] = new char[wordCount]; String input; char guess; System.out.print("Enter your guess(az): "); input = keyboard.next(); guess = input.charAt(0); for ( int i = 0 ; i < wordCount ; i++ ) { wordContainer[i] = word.charAt(i); wordHiddenContainer[i] = '*'; } System.out.println(wordContainer); System.out.println(wordHiddenContainer); for (int j = 0; j < word.length(); j++ ) { if(guess.equals(wordContainer[j])) { wordHiddenContainer[j] = guess; } } } }
将基元与==
进行比较。 如果将char
转换为包装类Character
,则可以使用.equals()
。
要么改变
-
char guess;
Character guess;
要么
-
if(guess.equals(wordContainer[j]))
if(guess == wordContainer[j]))
。
equals()
是一个包含在Object类中的方法,它通过inheritance传递给在java中创建的每个类。 因为它是一个方法,所以它只能由对象而不是基元调用。
你应该像这样比较变量guess
if(guess==wordContainer[j]) {
希望能帮助到你。