在Java中,我应该制作一个文字游戏,其中一个人应该用一组给定的随机字母来制作字母。我已经编写了代码来查找字母(变量是String Letters
),但是我无法检查播放器选择的单词(String word
)是否实际上是使用给定的字母创建的?我有一个英文单词中所有英文单词的txt文件,如果它是一个单词,这就是我的基础。我该怎么做呢?我很确定它与检查索引有关,或者使用内置命令包含at。
我已经尝试过搜索这个。然而,其他问题使用C语言或Python。我找到了1个Java解释,但我不熟悉编码,也不了解他们使用的代码和变量。
这是我需要帮助的地方的一个例子
if (Words.contains(letters) == true) {
System.out.println("That is a word");
for (int i = 0; i < word.length(); i++) {
int index = letters.indexOf(word.charAt(i));
}
完整的方法。
public static void getWord(String letters) {
int trys = 0;
int trysLeft = 5;
System.out.println("Input a word that you can make with those letters");
while (trys < 5) {
String word = getString(); //getString is a method where user can input a desired string
if (Words.contains(letters) == true) {
System.out.println("That is a word");
for (int i = 0; i < word.length(); i++) {
int index = letters.indexOf(word.charAt(i));
}
}
else if (Words.contains(word) == false) {
System.out.println("That is not a real word! Please enter a word that you can make with these letters.");
trys++;
trysLeft=trysLeft-trys;
System.out.println("You have " + trysLeft + " trys Left. Keep at it!");
}
else if (Words.contains(letters) == false) {
System.out.println("You can not make a word with these letters.");
trys++;
trysLeft=trysLeft-trys;
System.out.println("You have " + trysLeft + " trys Left. Keep at it!");
}
}
}
答案 0 :(得分:0)
你需要检查每个字母的标记。如果您发送charSeq,例如{&#39; a&#39; ,&#39;&#39;&#39; d&#39; },java将尝试查找您的字符串是否完全包含&#34; abd&#34;
答案 1 :(得分:0)
一种方法是对字母列表中的字母和单词进行排序,看看你的单词是否包含在可用的字母中,如下所示:
public static void main(String args[]) {
String letters = sort("haat");
System.out.println("Is a word: " + letters.contains(sort("hat")));
}
public static String sort(String s)
{
char[] chars = s.toCharArray();
Arrays.sort(chars);
return new String(chars);
}
答案 2 :(得分:0)
您可以使用许多技术来实现此类项目。 这是一个:
Map
。地图的关键应该是字符,地图的值应该是字母的数量。Map
。同样,地图的关键字应该是字符,地图的值应该是字母数。