你如何使用一组随机给定的字母检查是否只用那些给定的字母创建了一个单词

时间:2017-09-29 18:49:04

标签: java string

在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!");
        }
    }
}

3 个答案:

答案 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)

您可以使用许多技术来实现此类项目。 这是一个:

  1. 根据输入字母构建Map。地图的关键应该是字符,地图的值应该是字母的数量。
  2. 从猜词中构建Map。同样,地图的关键字应该是字符,地图的值应该是字母数。
  3. 比较地图。如果它们相等,那么这个单词就是由输入字母串中的字母构成的。