Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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_Arrays_String - Fatal编程技术网

Java从用户创建字符串数组

Java从用户创建字符串数组,java,arrays,string,Java,Arrays,String,我想知道如何在这个梦幻足球节目中添加一个新功能。我希望能够让用户为他们的团队输入名称,而不仅仅是“团队1”、“团队2”等等。我正在尝试创建一个字符串数组和 向用户询问团队名称 在接下来的问题中列出团队名称,询问本周的分数 在课程结束时的最终成绩统计中列出团队名称 经过大量的搜索和阅读,我一直不知道如何做到这一点。目前,我在for循环中询问用户团队名称,在那里我询问每周的分数,但这似乎不是正确的位置。任何帮助都将不胜感激 import java.util.Scanner; public clas

我想知道如何在这个梦幻足球节目中添加一个新功能。我希望能够让用户为他们的团队输入名称,而不仅仅是“团队1”、“团队2”等等。我正在尝试创建一个字符串数组和

  • 向用户询问团队名称
  • 在接下来的问题中列出团队名称,询问本周的分数
  • 在课程结束时的最终成绩统计中列出团队名称
  • 经过大量的搜索和阅读,我一直不知道如何做到这一点。目前,我在for循环中询问用户团队名称,在那里我询问每周的分数,但这似乎不是正确的位置。任何帮助都将不胜感激

    import java.util.Scanner;
    
    public class fantasyFootball
    {
    
      private int numberOfTeams; // Same as teamAverage.length.
      private int numberOfWeeks; // Same as weekAverage.length.
    
      private int[][] score; //numberOfTeams rows and numberOfWeeks columns.
      private int[] teamAverage;
      private int[] scoreAverage;
    
      public static void main(String[] args)
      {
        fantasyFootball book = new fantasyFootball( );
        book.display();
      }
    
      public fantasyFootball(int[][] a)
      {
        if (a.length == 0 || a[0].length == 0)
        {
            System.out.println("Empty score records. Aborting.");
            System.exit(0);
        }
    
        numberOfTeams = a.length;
        numberOfWeeks = a[0].length;
        fillScore(a);
        fillTeamAverage( );
        fillScoreAverage( );
      }
    
      public fantasyFootball(fantasyFootball book)
      {
        numberOfTeams = book.numberOfTeams;
        numberOfWeeks = book.numberOfWeeks;
        fillScore(book.score);
        fillTeamAverage( );
        fillScoreAverage( );
      }
    
      public fantasyFootball( )
      {
        Scanner keyboard = new Scanner(System.in);
    
        System.out.println("Enter number of teams:");
        numberOfTeams = keyboard.nextInt( );
    
        System.out.println("Enter number of weeks:");
        numberOfWeeks = keyboard.nextInt( );
    
        score = new int[numberOfTeams][numberOfWeeks];
    
        for (int teamName = 1; 
                teamName <= numberOfTeams; teamName++)
            for (int weekNumber = 1; 
                    weekNumber <= numberOfWeeks; weekNumber++)
            {
                System.out.println("Enter team name ");
                teamName.add(keyboard.nextLine()); 
                System.out.println("Enter score for team "
                        + teamName);
                System.out.println("on week number " + weekNumber);
                score[teamName - 1][weekNumber - 1] =
                        keyboard.nextInt( );
            }
    
        fillTeamAverage( );
        fillScoreAverage( );
      }
    
      private void fillScore(int[][] a)
      {
        score = new int[numberOfTeams][numberOfWeeks];
    
        for (int teamName = 1; 
                teamName <= numberOfTeams; teamName++)
        {
            for (int weekNumber = 1; 
                    weekNumber <= numberOfWeeks; weekNumber++)
                score[teamName][weekNumber] = 
                a[teamName][weekNumber];
        }
      }
    
    /**
      Fills the array teamAverage using the data from the array score.
     */
      private void fillTeamAverage( )
      {
        teamAverage = new int[numberOfTeams];
    
        for (int teamName = 1; 
                teamName <= numberOfTeams; teamName++)
        {//Process one teamName:
            int sum = 0;
            for (int weekNumber = 1; 
                    weekNumber <= numberOfWeeks; weekNumber++)
                sum = sum + score[teamName - 1][weekNumber - 1];
            //sum contains the sum of the week scores for team number teamName.
            teamAverage[teamName - 1] = sum/numberOfWeeks;
            //Average for team teamNumber is teamAverage[teamNumber - 1]
        }
      }
    
    /**
      Fills the array scoreAverage using the data from the array score.
     */
      private void fillScoreAverage( )
      {
        scoreAverage = new int[numberOfWeeks];
    
        for (int weekNumber = 1; weekNumber <= numberOfWeeks; weekNumber++)
        {//Process one week (for all teams):
            int sum = 0;
            for (int teamName = 1; 
                    teamName <= numberOfTeams; teamName++)
                sum = sum + score[teamName - 1][weekNumber - 1];
            //sum contains the sum of all team scores on week number weekNumber.
            scoreAverage[weekNumber - 1] = sum/numberOfTeams;
            //Average for week weekNumber is the value of weekAverage[weekNumber - 1]
        }
      }
    
      public void display( )
      {
        for (int teamName = 1; 
                teamName <= numberOfTeams; teamName++)
    
        {//Display for one teamNumber:
            System.out.print("Team " + teamName + " Weeks: ");
            for (int weekNumber = 1; 
                    weekNumber <= numberOfWeeks; weekNumber++)
                System.out.print(score[teamName - 1][weekNumber - 1] + " ");
            System.out.println(" Ave = " + teamAverage[teamName - 1] );
        }
    
        System.out.println("Week averages: ");
        for (int weekNumber = 1; weekNumber <= numberOfWeeks; weekNumber++)
            System.out.print("Week " + weekNumber 
                    + " Ave = " + scoreAverage[weekNumber - 1] + " ");
        System.out.println( );
    }
    
      private void teamName()
      {
        Scanner keyboard = new Scanner(System.in);
        String[] teamName = new String[3];
    
      }
    
    import java.util.Scanner;
    公共课幻想足球
    {
    private int numberOfTeams;//与teamAverage.length相同。
    private int numberOfWeeks;//与weekAverage.length相同。
    private int[][]score;//numberOfTeams行和numberOfWeeks列。
    个人平均成绩;
    私人整数[]平均分;
    公共静态void main(字符串[]args)
    {
    fantasyFootball book=新的fantasyFootball();
    book.display();
    }
    公共幻想足球(int[]a)
    {
    如果(a.length==0 | | a[0]。length==0)
    {
    System.out.println(“空分数记录。中止”);
    系统出口(0);
    }
    numberOfTeams=a.长度;
    numberOfWeeks=a[0]。长度;
    分数(a);
    平均值();
    平均值();
    }
    公共幻想足球(幻想足球书)
    {
    numberOfTeams=book.numberOfTeams;
    numberOfWeeks=book.numberOfWeeks;
    fillScore(book.score);
    平均值();
    平均值();
    }
    公共幻想足球()
    {
    扫描仪键盘=新扫描仪(System.in);
    System.out.println(“输入团队数量:”);
    numberOfTeams=keyboard.nextInt();
    System.out.println(“输入周数:”);
    numberOfWeeks=keyboard.nextInt();
    分数=新的整数[numberOfTeams][numberOfWeeks];
    对于(int teamName=1;
    
    teamName我会在获得分数之前设置球队名称

    System.out.println("Enter number of teams:");
    int numberOfTeams = keyboard.nextInt( );
    
    String[] teamNames = new String[numberOfTeams];
    for (int i = 0; i < numberOfTeams; i++) {
      System.out.printf("Enter team name for team %d:%n", 1+i);
      teamNames[i] = keyboard.next();
    }
    
    System.out.println(“输入团队数量:”);
    int numberOfTeams=keyboard.nextInt();
    String[]teamNames=新字符串[numberOfTeams];
    对于(int i=0;i
    改为:

            System.out.println("Enter team name ");
            String name = (keyboard.nextLine()); 
            System.out.println("Enter score for team "
                    + name);
    
    此外,如果要存储它,请执行以下操作:

    private String[] names = new String[numberOfTeams];
    //Then in the above code:
    names[teamName] = name;
    

    下面是一个使用
    ArrayList
    存储团队名称的解决方案:

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    public class fantasyFootball {
    
        private List<String> teamNames = new ArrayList<String>();
        private int numberOfTeams; // Same as teamAverage.length.
        private int numberOfWeeks; // Same as weekAverage.length.
    
        private int[][] score; // numberOfTeams rows and numberOfWeeks columns.
        private int[] teamAverage;
        private int[] scoreAverage;
    
        public static void main(String[] args) {
            fantasyFootball book = new fantasyFootball();
            book.display();
        }
    
        public fantasyFootball(int[][] a) {
            if (a.length == 0 || a[0].length == 0) {
                System.out.println("Empty score records. Aborting.");
                System.exit(0);
            }
    
            numberOfTeams = a.length;
            numberOfWeeks = a[0].length;
            fillScore(a);
            fillTeamAverage();
            fillScoreAverage();
        }
    
        public fantasyFootball(fantasyFootball book) {
            numberOfTeams = book.numberOfTeams;
            numberOfWeeks = book.numberOfWeeks;
            fillScore(book.score);
            fillTeamAverage();
            fillScoreAverage();
        }
    
        public fantasyFootball() {
            Scanner keyboard = new Scanner(System.in);
    
            System.out.println("Enter number of teams:");
            numberOfTeams = keyboard.nextInt();
    
            System.out.println("Enter number of weeks:");
            numberOfWeeks = keyboard.nextInt();
    
            score = new int[numberOfTeams][numberOfWeeks];
    
            for (int teamName = 1; teamName <= numberOfTeams; teamName++){
                System.out.println("Enter team " + teamName + " name ");
                String name = keyboard.next();
                teamNames.add(name);
                for (int weekNumber = 1; weekNumber <= numberOfWeeks; weekNumber++) {
                    System.out.println("Enter score for team " + teamName + " on week number " + weekNumber);
                    score[teamName - 1][weekNumber - 1] = keyboard.nextInt();
                }
            }
    
            fillTeamAverage();
            fillScoreAverage();
        }
    
        private void fillScore(int[][] a) {
            score = new int[numberOfTeams][numberOfWeeks];
    
            for (int teamName = 1; teamName <= numberOfTeams; teamName++) {
                for (int weekNumber = 1; weekNumber <= numberOfWeeks; weekNumber++)
                    score[teamName][weekNumber] = a[teamName][weekNumber];
            }
        }
    
        /**
         * Fills the array teamAverage using the data from the array score.
         */
        private void fillTeamAverage() {
            teamAverage = new int[numberOfTeams];
    
            for (int teamName = 1; teamName <= numberOfTeams; teamName++) {// Process
                                                                            // one
                                                                            // teamName:
                int sum = 0;
                for (int weekNumber = 1; weekNumber <= numberOfWeeks; weekNumber++)
                    sum = sum + score[teamName - 1][weekNumber - 1];
                // sum contains the sum of the week scores for team number teamName.
                teamAverage[teamName - 1] = sum / numberOfWeeks;
                // Average for team teamNumber is teamAverage[teamNumber - 1]
            }
        }
    
        /**
         * Fills the array scoreAverage using the data from the array score.
         */
        private void fillScoreAverage() {
            scoreAverage = new int[numberOfWeeks];
    
            for (int weekNumber = 1; weekNumber <= numberOfWeeks; weekNumber++) {// Process
                                                                                    // one
                                                                                    // week
                                                                                    // (for
                                                                                    // all
                                                                                    // teams):
                int sum = 0;
                for (int teamName = 1; teamName <= numberOfTeams; teamName++)
                    sum = sum + score[teamName - 1][weekNumber - 1];
                // sum contains the sum of all team scores on week number
                // weekNumber.
                scoreAverage[weekNumber - 1] = sum / numberOfTeams;
                // Average for week weekNumber is the value of
                // weekAverage[weekNumber - 1]
            }
        }
    
        public void display() {
            for (int teamName = 1; teamName <= numberOfTeams; teamName++)
    
            {// Display for one teamNumber:
                System.out.print("Team " + teamNames.get(teamName-1) + " Weeks: ");
                for (int weekNumber = 1; weekNumber <= numberOfWeeks; weekNumber++)
                    System.out.print(score[teamName - 1][weekNumber - 1] + " ");
                System.out.println(" Ave = " + teamAverage[teamName - 1]);
            }
    
            System.out.println("Week averages: ");
            for (int weekNumber = 1; weekNumber <= numberOfWeeks; weekNumber++)
                System.out.print("Week " + weekNumber + " Ave = "
                        + scoreAverage[weekNumber - 1] + " ");
            System.out.println();
        }
    
        private void teamName() {
            Scanner keyboard = new Scanner(System.in);
            String[] teamName = new String[3];
    
        }
    }
    

    这是一个使用字符串对象的简单数组的解决方案。将
    私有字符串[]名称;
    添加到实例字段列表中,使FantasyFootball构造函数如下所示:

    public FantasyFootball()
    {
        int numTeams;
        int numWeeks;
        Scanner keyboard = new Scanner(System.in);
    
        System.out.print("Enter number of teams: ");
        numTeams = keyboard.nextInt();
    
        for (int i = 0; i < numTeams; i++)
        {
            System.out.print("Enter the name of team " + (i+1) + ": ");
            names[i] = keyboard.nextLine();
        }
    
        System.out.print("Enter number of weeks: ");
        numWeeks = keyboard.nextInt();
    
        names = new String[numTeams];
        scores = new int[numTeams][numWeeks];
    
        for (int i = 0; i < numTeams; i++)
        {
            for (int j = 0; j < numWeeks; j++)
            {
                System.out.print("Enter the score for " + names[i] + " for week " + (j+1) + ": ");
                scores[i][j] = keyboard.nextInt();
            }
        }
    
        fillTeamAverage();
        fillScoreAverage();
    }
    
    public FantasyFootball()
    {
    国际数字团队;
    国际数周;
    扫描仪键盘=新扫描仪(System.in);
    System.out.print(“输入团队数量:”);
    numTeams=keyboard.nextInt();
    对于(int i=0;i
    一些编程技巧:

    首先,我建议创建一个团队对象,该对象包含每周的分数数组、团队平均值的int和分数平均值的int。然后在fantasyFootball类中,只需操作团队对象数组,而不是每个不同字段的数组。这会使以后的工作更轻松

    根据惯例,类名通常以大写字母开头。几乎每个人都遵循惯例,所以我强烈建议你也这样做

    诚然,使用一行的so-I-not-need-brages语法较短,但这会使代码更难阅读,也更难调试代码,因此我还建议您使用所有的大括号,以及在新行上而不是在语句行的末尾放大括号。同样,这会使事情变得更容易

    最后,在Java中,您可以使用+运算符将变量连接到字符串上。但我注意到,在您的代码中,您将一些打印分为两个调用。您可能已经知道这一点,但您可以在同一个string/print语句中使用多个+运算符,就像在数字中使用+一样


    希望这有帮助!

    只需使用ArrayStor即可使用映射定义整个团队对象,其中包含键值对,如名称、id、周、分数等。此操作有两个功能:存储输入的名称。将其添加到数组中
    Enter number of teams:
    3
    Enter number of weeks:
    2
    Enter team 1 name 
    MyTeam1
    Enter score for team 1 on week number 1
    1
    Enter score for team 1 on week number 2
    2
    Enter team 2 name 
    MyTeam2
    Enter score for team 2 on week number 1
    3
    Enter score for team 2 on week number 2
    4
    Enter team 3 name 
    MyTeam3
    Enter score for team 3 on week number 1
    4
    Enter score for team 3 on week number 2
    6
    Team MyTeam1 Weeks: 1 2  Ave = 1
    Team MyTeam2 Weeks: 3 4  Ave = 3
    Team MyTeam3 Weeks: 4 6  Ave = 5
    Week averages: 
    Week 1 Ave = 2 Week 2 Ave = 4 
    
    public FantasyFootball()
    {
        int numTeams;
        int numWeeks;
        Scanner keyboard = new Scanner(System.in);
    
        System.out.print("Enter number of teams: ");
        numTeams = keyboard.nextInt();
    
        for (int i = 0; i < numTeams; i++)
        {
            System.out.print("Enter the name of team " + (i+1) + ": ");
            names[i] = keyboard.nextLine();
        }
    
        System.out.print("Enter number of weeks: ");
        numWeeks = keyboard.nextInt();
    
        names = new String[numTeams];
        scores = new int[numTeams][numWeeks];
    
        for (int i = 0; i < numTeams; i++)
        {
            for (int j = 0; j < numWeeks; j++)
            {
                System.out.print("Enter the score for " + names[i] + " for week " + (j+1) + ": ");
                scores[i][j] = keyboard.nextInt();
            }
        }
    
        fillTeamAverage();
        fillScoreAverage();
    }