如何使用else-if语句在java中编写随机组生成器?

jq6vz3qz  于 2022-12-17  发布在  Java
关注(0)|答案(1)|浏览(122)

我必须编写一个程序,允许用户在两个任务之间进行选择:一个随机组生成器,还有一个任务是对输入的句子进行逐词分析和计数。我真的不知道该怎么做。说明如下:团队成员:如果输入1,应用程序将提示用户输入所需的组数。如果输入0,则不会发生任何情况,应用程序将继续提示用户输入1或2。请参见图3。如果组数为1或更大,应用程序将显示组号,从1开始。然后是从COP2510.txt中提供的49名学生中随机选择的三个全名。另请参见图3,其中输入1和3分别表示组成一个团队和三个团队。提示:使用测验3的www.example.com或www.example.com中的Random类GetRandom1.javaGR.zip来实现此随机选择。
每个团队的所有名称必须以“tab”开头显示。在此应用程序中,任何学生都不能在同一个或不同的团队中出现超过一次,这一点非常重要。提示:将随机数(整数)“Map”到特定学生姓名的方法不止一种。2使用if....else if.... else if.... else if....是一种可能的方法,在此推荐使用。3将所有姓名存储在数组中也是一种方法,但直到第10章才介绍。4计算单词数:如果输入2,应用程序将提示用户输入一个或多个句子。参见图4。应用程序使用空格字符““分隔输入中的单词并对其进行计数。如果有两个或多个连续空格,则将其视为一个。即,“AA BB”和“AA BB”都包含两个单词。参见图5。输入中的所有前导和尾随空格都将被忽略。提示:使用String的“trim()”方法。应用程序显示两行破折号,即“--------------------”,将其找到的每个单词括起来。每个单词必须与其长度一起显示。例如,如果输入“Hi,John!”,则破折号之间的两行应为“Hi,(3)”和“John!(5)"。在第二个破折号行之后,显示单词总数以结束任务。如果没有输入单词或句子,则在两条虚线之间显示消息“Nothing or only space(s)is entered.”,计数为零。参见图5中的最后一次输入。提示:可以使用String的trim()、indexOf()、length()、substring()和equals()方法来实现上述单词计数任务,即使使用相同的方法,也有不同的方法来完成此任务。
我得到了程序欢迎用户的第一部分,并展示了程序的功能。但是我不知道如何编写随机团队生成器。我只能使用else if语句。有人告诉我给每个名字分配一个随机数,然后使用else if语句。但是我不知道怎么做。至于单词计数器,我就是不知道。如果有人能帮上忙,那就太好了。

import java.util.Scanner;
   import java.util.Random;
   public class asssignment3 {
   public static void main (String args[]){
   Scanner sc = new Scanner(System.in);
    //print out a task prompt 
    System.out.println("Assignment-3 can perform the following two task:");
    System.out.println();
    System.out.println("\t1-Making 3-member tems from class of COP2510");
    System.out.println("\t2-Parsing and counting an input sentence by word");
    System.out.println();
    System.out.print("Enter 1 or 2 to begin your task or anything else to quit:   ");
    String choiceNumber = sc.nextLine (); 

  if (choiceNumber.equalsIgnoreCase("0")) {
      System.out.println("Enter 1 or 2 to begin your task or anything else to quit:  ");
      String optionNumber = sc.nextLine ();
  }
  Random r = new Random();    
 if (choiceNumber.equalsIgnoreCase ("1")) {
     String studentName = "";`
r7knjye2

r7knjye21#

就我个人而言,我会放弃if-else,而使用数组。用0-N中的每一个整数创建一个数组,其中N是学生人数。然后,将列表四处移动。我相信Java有一个预构建的函数,但如果没有,那么它的算法也是微不足道的。
从这里开始,只需逐行读取学生文件,并从混洗数组中分配相应的数字。

# >>> Generate the list of numbers of shuffle it. <<< #
N = number of students
numbers = [i for i in range(N)]
random.shuffle(numbers)

# >>> Initialize a list to store number-student pair <<< #
students = []

# >>> Read in the student file line by line <<< #
for line in students.txt:
    randomNumber = numbers.pop()
    students.append((line, randomNumber))

Viola,students列表现在包含了所有学生,并与一个随机数配对。
对于单词计数,通过trim()和split()运行输入。

# >>> Removes whitespace before and after the string ("  A " -> "A") <<< #
input = input.trim()
# >>> Splits input into an array ("AA BB CC" -> ["AA", "BB", "CC"]) <<< #
words = input.split(" ")
numWords = word.length

相关问题