- 切换回短语类。添加一个返回 boolean 值的新方法guessLetter 并接受一个字符作为参数。这将用于查看玩家是否猜出了一个字母 正确。此方法应该: ● 将 char 转换为名为 guessed 的 Letter 类型的局部变量 ● 如果猜到的是字母则返回 true,否则返回 false
public class Phrase { private String phrase; public Phrase(String phrase) { phrase = phrase.toUpperCase(); for(char c : phrase.toCharArray()) { letters.add(new Letter(c)); } } public String getPhrase() { return phrase; } // public String phrase; ArrayList<Letter> letters = new ArrayList<Letter>(); public ArrayList<Letter> getLetters() { return letters; } public boolean guessLetter(char c) { char c = new char(Letter); c = guessed; return false; } }
谢谢。我无法弄清楚这一点。
package edu.htc.java1.phrasegame.model;
public class Letter {
private char letter;
private boolean isHidden;
public int getLetter() {
return letter;
}
public boolean isHidden() {
return isHidden;
}
public void unhide() {
isHidden = false;
}
public Letter(char letter) {
this.letter = letter;
if (String.valueOf(letter).matches("[A-Z]")) {
isHidden = true;
}
}
}
最佳答案
char c = new char(Letter);
可能应该是 Letter suggestedLetter = new Letter(c);
我不确定 c = suggested;
应该做什么。
然后您需要查看 guessedLetter
是否在 letters
中。如何实现取决于 Letter
的实现。
编辑:现在我看到了 Letter
实现,正确的解决方案是重写 Letter
中的 equals()
,可能比较 信
。在本练习中,您可以不实现 hashCode()
,但您确实应该重写它。那么你的guessLetter()方法可以是:
public boolean guessLetter(char c) {
return letters.contains(new Letter(c));
}
或者满足问题中的约束:
public boolean guessLetter(char c) {
Letter guessed = new Letter(c);
return letters.contains(guessed);
}
关于java - 如何将 char 转换为名为 Guessed 的字母类型的局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22945051/