java-我需要将逗号分隔的字符串转换为数组列表,然后计算这些分数的平均值.
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-我需要将逗号分隔的字符串转换为数组列表,然后计算这些分数的平均值.,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2650字,纯文字阅读大概需要4分钟。
内容图文
这个问题已经在这里有了答案: > Splitting String and put it on int array 8个
我正在尝试将已有的代码输入转换为int数组列表,以便可以使用它们计算平均得分,但不确定如何执行此操作.同样,当涉及到分数时,输入的范围可以是1-5,因此一个学生可以得到3分,而下一个学生可以得到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;
}
解决方法:
Arrays.stream("1,2,3,4,5".split(",")).mapToInt(Integer::parseInt).average();
我建议考虑我的紧凑型解决方案.返回OptionalDouble.如果首先通过isPresent()检查结果,则getAsDouble()将返回结果,以避免NoSuchElementException.
编辑:
我不喜欢编写带有长变量名的大量代码,但是为了让您更好地理解,我将其作为例外.
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!")
内容总结
以上是互联网集市为您收集整理的java-我需要将逗号分隔的字符串转换为数组列表,然后计算这些分数的平均值.全部内容,希望文章能够帮你解决java-我需要将逗号分隔的字符串转换为数组列表,然后计算这些分数的平均值.所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。