Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 你如何使用一组随机给定的字母来检查一个单词是否只用这些给定的字母来创建_Java_String - Fatal编程技术网

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

Java 你如何使用一组随机给定的字母来检查一个单词是否只用这些给定的字母来创建,java,string,Java,String,在Java中,我应该制作一个文字游戏,其中一个应该用给定的一组随机字母来制作字母。我已经编写了查找字母的代码(变量为字符串字母),但我无法检查播放器选择的单词(字符串单词)是否确实是使用给定的字母创建的?我有一个包含所有英语单词的txt文件,如果它是一个单词,这就是我的基础。我该怎么做?我很确定它与检查索引有关,或者使用内置命令contains at 我已经尝试过搜索这个。然而,其他问题使用C语言或Python。我已经找到了1个Java解释,但是我对编码是新手,不理解他们使用的代码和变量 这是我

在Java中,我应该制作一个文字游戏,其中一个应该用给定的一组随机字母来制作字母。我已经编写了查找字母的代码(变量为
字符串字母
),但我无法检查播放器选择的单词(
字符串单词
)是否确实是使用给定的字母创建的?我有一个包含所有英语单词的txt文件,如果它是一个单词,这就是我的基础。我该怎么做?我很确定它与检查索引有关,或者使用内置命令contains 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));

            }
if(Words.contains(字母)==true){
System.out.println(“这是一个词”);
for(int i=0;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!");
        }
    }
}
公共静态void getWord(字符串字母){
int-trys=0;
int trysLeft=5;
System.out.println(“输入可以用这些字母生成的单词”);
而(trys<5){
String word=getString();//getString是一种用户可以输入所需字符串的方法
if(Words.contains(字母)==true){
System.out.println(“这是一个词”);
for(int i=0;i
您需要检查每个字母的coincains。如果您发送一个charSeq,例如{'a','b','d',,java将尝试查找字符串是否完全包含“abd”

一种方法是对字母列表中的字母和单词进行排序,并查看您的单词是否包含在可用的字母中,如下所示:

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);
}

有许多技术可以用来实现这个类项目。 这里有一个:

  • 根据输入的字母构建一个
    Map
    。Map的键应该是一个字符,Map的值应该是字母的计数
  • 根据单词guess构建一个
    Map
    。同样,Map的键应该是一个字符,Map的值应该是字母数
  • 比较这些映射。如果它们相等,则单词完全由输入字母字符串中的字母构成

  • contains不会按原样工作,因为它“当且仅当字符串包含指定的字符值序列时才返回true”。但您的字母可能会被我输入的字符打乱understand@jwils是的,它们是随机序列。这是因为项目规范要求字母必须是随机的,所以可以选择任何字母a-z(共有7封信)我不清楚您到底需要什么帮助。如果您要求我们解释这段代码,那么您应该花一些时间在您最喜欢的调试器中。如果您要求我们帮助您自己的解决方案,您将需要确切说明您需要什么帮助。@JoeC Ok,那么我收到的随机字母是“a R I Q F T”,我可以用“fair”这个词,因为它是用英语写的(我忘了在帖子中加上,玩家试图用给定的随机字母写的单词应该是用英语写的),但我也可以输入“Eye”在NetBeans IDE中,虽然Eye中的字母不是给定随机字母集的一部分,但它仍然将其视为一个单词。在不接受“Eye”的情况下,我如何才能使其成为一个单词,这正是我在else语句中试图做的,该语句说“你不能用这些字母造字”