Java 我需要将逗号分隔的字符串转换为数组列表,然后计算这些分数的平均值
我试图将我拥有的代码输入转换成一个int数组列表,这样我就可以使用它们来计算平均分数,但我不确定如何做到这一点。此外,当涉及到分数时,输入的范围可以是1-5,因此一个学生可以有3分,下一个学生可以有5分,以此类推。这是我目前掌握的代码 我的主要问题是如何将列表输入转换为单独的数组整数Java 我需要将逗号分隔的字符串转换为数组列表,然后计算这些分数的平均值,java,arrays,integer,Java,Arrays,Integer,我试图将我拥有的代码输入转换成一个int数组列表,这样我就可以使用它们来计算平均分数,但我不确定如何做到这一点。此外,当涉及到分数时,输入的范围可以是1-5,因此一个学生可以有3分,下一个学生可以有5分,以此类推。这是我目前掌握的代码 我的主要问题是如何将列表输入转换为单独的数组整数 //data declarations and initalizations final int MAX_STUDENTS = 12; final int MAX_SCORE = 5; /
//data declarations and initalizations
final int MAX_STUDENTS = 12;
final int MAX_SCORE = 5;
//data declarations
double avg; //average total for all students
int numStudents; //number of students 1-12
double totalAvgStu = 0.0; //
int num;
String stuScores = " "; //student score 1-5
//array declarations and inistiations
int [] score = new int[MAX_SCORE]; // score from input range between 1-5
double [] avgScores = new double[MAX_STUDENTS]; //avg total of score for one student
String [] testScores = new String[MAX_STUDENTS];
String [] array1 = new String[MAX_SCORE];
//user inputs for number of students
numStudents = UtilsKS.readInt("Enter number of students: ", false);
//while loop for correct input of students
while (numStudents <= 0 || numStudents > 12) {
System.out.print("ERROR: must be 1-12, ");
numStudents = UtilsKS.readInt("Enter number of students: ", false);
}
// user input for student score using a for loop
for (int i = 0; i < numStudents; i++) {
stuScores = UtilsKS.readString("Enter comma-separated test score for student " + (i+1) + ": ", false);
}
//for loop for arrays
for (int i=0; i<avgScores.length; i++) {
totalAvgStu += avgScores[i];
}
//outputs
String header = "average score1 score2 score3 score4 score5";
System.out.println("\n" + header);
System.out.println("\nAvg for all students = " + totalAvgStu/avgScores.length);
//initializing testscore to = what scores are inputed per student
for (int t=0; t<numStudents; t++) {
testScores[t] = stuScores;
}
//数据声明和初始化
最终int MAX_学生=12;
最终int MAX_分数=5;
//数据声明
双平均值//所有学生的平均总数
国际学生//学生人数1-12
双总AVGSTU=0.0//
int-num;
字符串“=”//学生成绩1-5分
//数组声明和索引
int[]分数=新的int[MAX_分数];//输入范围的分数在1-5之间
double[]avgScores=新的double[MAX_学生]//一名学生的平均总分
String[]testScores=新字符串[MAX_STUDENTS];
字符串[]数组1=新字符串[最大分数];
//学生人数的用户输入
numStudents=UtilsKS.readInt(“输入学生人数:”,false);
//while循环用于正确输入学生
而(numStudents 12){
系统输出打印(“错误:必须为1-12,”);
numStudents=UtilsKS.readInt(“输入学生人数:”,false);
}
//用户使用for循环输入学生分数
对于(int i=0;iisPresent()
进行检查,返回OptionalDouble
getAsDouble()
将返回结果,以避免nouchelementException
编辑: 我不喜欢用长变量名编写大量的代码,但为了让您更好地理解,我破例了
String commaSeparatedString = "1,2,3,4,5";
String[] numbers = commaSeparatedString.split(",");
Stream<String> stringStream = Arrays.stream(numbers);
IntStream intStream = stringStream.mapToInt(value -> Integer.parseInt(value));
OptionalDouble average = intStream.average();
System.out.println(average.isPresent() ?
"average = " + average.getAsDouble() :
"stream is empty!")
String commaSeparatedString=“1,2,3,4,5”;
String[]number=commaSeparatedString.split(“,”);
Stream stringStream=Arrays.Stream(数字);
IntStream IntStream=stringStream.mapToInt(值->整数.parseInt(值));
OptionalDouble average=intStream.average();
System.out.println(average.isPresent()?
“average=“+average.getAsDouble():
“流是空的!”)
您能提供输入和输出示例吗?也是一个简单的(黑客的)方法是初始化两个变量temp和sum。使用逗号解析字符串。将值存储在temp中并添加到sum。存储一个计数器,记录您执行这些步骤的次数。将sum除以计数器以获得平均值。您已经发布了要求和代码,但没有问任何具体问题。我们不会为您编写c代码当然可以,但我们可以回答问题。所以请修复此问题,以便我们能够知道如何帮助您。这里有很多代码。到底是什么问题?很抱歉,我在主要问题中添加了此选项,我是新手。我知道您必须使用.split()和integer.parseInt()不知怎的,但我不明白怎么做?也看看这个网站上其他类似的问题和答案。感谢那些真正帮助了我的人!啊,是的,Java 8的实现方法。1+我对编码还是有点陌生,所以我有点困惑。Arrays是从Java.util导入的。*:)以防万一,顺便提一下。哥们,我想学习如何使用
:
在哪里可以查阅?请告诉我@Andrew@TilakMadichetti,看
String commaSeparatedString = "1,2,3,4,5";
String[] numbers = commaSeparatedString.split(",");
Stream<String> stringStream = Arrays.stream(numbers);
IntStream intStream = stringStream.mapToInt(value -> Integer.parseInt(value));
OptionalDouble average = intStream.average();
System.out.println(average.isPresent() ?
"average = " + average.getAsDouble() :
"stream is empty!")