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