Java 如何以不同的方法从数组列表中选择大小写

Java 如何以不同的方法从数组列表中选择大小写,java,arrays,if-statement,Java,Arrays,If Statement,我目前正在用java制作一个hang man游戏,我有一个按难度排列的单词列表,在一个方法中,然后在另一个方法中,我有一个if语句,询问用户想玩哪个难度。我该怎么做呢?我的代码如下: public static int word(){ String words[] = new String[26]; switch(diff){ case 1: words[0] = "cat"; words[1] = "dog"; words[2] = "bo

我目前正在用java制作一个hang man游戏,我有一个按难度排列的单词列表,在一个方法中,然后在另一个方法中,我有一个if语句,询问用户想玩哪个难度。我该怎么做呢?我的代码如下:

public static int word(){
 String words[] = new String[26];
    switch(diff){
    case 1:
      words[0] = "cat";
      words[1] = "dog";
      words[2] = "book";          
      words[3] = "breakfeast";          
      words[4] = "telephone";          
      words[5] = "mixture";          
      words[6] = "music";          
      words[7] = "animal";          
      words[8] = "school";          
      words[9] = "plant";          
      words[10] = "pen";          
      words[11] = "pencil";          
      words[12] = "paper";          
      words[13] = "note";          
      words[14] = "fog";          
      words[15] = "smoke";        
      words[16] = "bake";          
      words[17] = "alone";          
      words[18] = "drive";          
      words[19] = "town";          
      words[20] = "city";          
      words[21] = "sunny";          
      words[22] = "shine";          
      words[23] = "polish";          
      words[24] = "cap";          
      words[25] = "hat";

      break;
    case 2:
      words[0] = "president";
      words[1] = "exclamation";          
      words[2] = "statement";          
      words[3] = "television";          
      words[4] = "physics";          
      words[5] = "algebra";          
      words[6] = "geometry";          
      words[7] = "difficult";          
      words[8] = "extreme";          
      words[9] = "procedure";          
      words[10] = "ship";          
      words[11] = "soldier";          
      words[12] = "lunch";          
      words[13] = "hockey";          
      words[14] = "tennis";          
      words[15] = "soccer";          
      words[16] = "football";          
      words[17] = "basketball";          
      words[18] = "bias";          
      words[19] = "magazine";          
      words[20] = "computer";          
      words[21] = "internet";          
      words[22] = "allegedly";          
      words[23] = "system";          
      words[24] = "unison";          
      words[25] = "excited";         
      break;
    case 3:
      words[0] = "amalgamation";          
      words[1] = "proclomation";          
      words[2] = "establishment";          
      words[3] = "rehabilitation";          
      words[4] = "rhinoceros";          
      words[5] = "velociraptor";         
      words[6] = "declaration";         
      words[7] = "announcement";          
      words[8] = "binomial";          
      words[9] = "polynomial";          
      words[10] = "congregation";          
      words[11] = "obligation";          
      words[12] = "structure";          
      words[13] = "description";          
      words[14] = "perscription";          
      words[15] = "subscribe";          
      words[16] = "address";          
      words[17] = "township";          
      words[18] = "mischievous";          
      words[19] = "bewildered";          
      words[20] = "accusation";          
      words[21] = "designation";          
      words[22] = "disgusting";          
      words[23] = "prolonged";          
      words[24] = "restoration";          
      words[25] = "regeneration";          
  }

int i = words.length;

Random rng = new Random();     //This block of code chooses random word from array list
int choice = rng.nextInt(words.length); //Varible storing random word
String wd = words[choice];
out.println(wd);
}



public static int gameStart(){
    Scanner qwe = new Scanner(in);
    out.println("Welcome to my Hang Man game!\n");
    out.println("What difficulty would you like to play on?\t1-3");
    int diff = qwe.nextInt();

    if (diff == 1){
        //not sure what would go here
    }
    else if (diff == 2){
        //not sure what would go here
    }
    else{
        //not sure what would go here
    }


}
  • 将每个难度的单词存储在单独的文本文件中
  • 创建一个方法
    String[]getWords(int难度)
    ,该方法将返回从给定难度的文件加载的单词列表
  • 不要将处理程序不同方面的代码混用在一个方法中,就像您在
    word()
    方法中所做的那样。创建一个单词列表,选择随机单词并显示在屏幕上,这听起来像三个不同的方面。这意味着大约有3种方法

  • word()
    方法上需要一个参数,并且需要将该方法中的单词作为字符串(而不是int)返回。例程的其余部分(case语句和随机单词选择)是可以的,所以我没有在下面重复。也许是这样的:

    public static String word(int diff) {
        ....
        return wd;
    }
    
    然后在你有if块的地方,你不需要if块,只要把难度传递到例程中就行了。比如:

    String myWord = word(diff);
    

    +1用于提示将应用程序逻辑与数据分开。好的,假设我制作了3个不同的文本文件,分别命名为words1、words2和words3。在IF语句中,如果用户输入“1”,它将使用名为words1的文本文件,并从该列表中随机选择一个单词。我该怎么做?此外,在文本文件中,每个单词是否都应该在新行中?在
    getWords()
    中,您需要一个iff,它将选择正确的文件进行读取。然后你需要从那个文件中获取所有单词。是的,如果最简单的布局,我会说每行一个工作。这三个建议是相当好的建议,但它们没有回答如何接收随机单词的问题。真正的问题是,单词被打印到屏幕上,无法通过case语句将难度变量传递到方法中。@AgilePro可以说,我们来这里不仅是为了提供现成的解决方案,而且是为了引导人们自己找到正确的解决方案。特别是如果问题一开始似乎是由于糟糕的代码造成的。