Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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_Integer - Fatal编程技术网

Java 我需要将逗号分隔的字符串转换为数组列表,然后计算这些分数的平均值

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; /

我试图将我拥有的代码输入转换成一个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;
    }    
//数据声明和初始化
最终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!")