Java 在阵列旁边显示平均值
我是Java新手,所以向您道歉 我有两个阵列:Java 在阵列旁边显示平均值,java,arrays,string,return,average,Java,Arrays,String,Return,Average,我是Java新手,所以向您道歉 我有两个阵列: int[] grades = {64,55,45,67,65,88}; String[] unitCode = {"APP:","BSAD:","CF","DAD:","N&CS:","POP:"}; 我需要让每一个都挨在一起形成: [APP:64, BSAD:55, CF45, DAD:67, N&CS:65, POP:88] 我通过以下代码实现了这一点: public String[] unitMarks(int[]
int[] grades = {64,55,45,67,65,88};
String[] unitCode = {"APP:","BSAD:","CF","DAD:","N&CS:","POP:"};
我需要让每一个都挨在一起形成:
[APP:64, BSAD:55, CF45, DAD:67, N&CS:65, POP:88]
我通过以下代码实现了这一点:
public String[] unitMarks(int[] grades, String[] unitCode)
{
double sum = 0;
for (double i : grades)
sum += i;
double average = (sum/grades.length);
for (int i = 0; i <grades.length; i++)
{
String combination = unitCode[i]+grades[i];
unitCode[i] = combination;
}
return unitCode;
}
我已经编写了查找grades数组平均值的代码。我只是在返回组合数组的平均值时遇到了麻烦(在它前面还显示了“average:”
我试过做类似的事情-
String includedAverage = unitCode+" Average:"+average;
return includedAverage;
但是它开始说它不能从字符串转换到字符串[]。
如果我将方法返回类型更改为String,它将不适用于以下情况:
System.out.println(Arrays.toString(myArrays.unitMarks(grades, unitCode)));
任何帮助或指点都会很好。谢谢。您可以添加一个比您的
unitcode
数组多一个空间的结果数组,并为其赋值,而不是修改输入:
public String[] unitMarks(int[] grades, String[] unitCode) {
double sum = 0;
for (double i : grades) {
sum += i;
}
double average = (sum / grades.length);
String[] result = new String[grades.length +1];
for (int i = 0; i < grades.length; i++) {
String combination = unitCode[i] + grades[i];
result[i] = combination;
}
result[result.length-1]= "Average:"+average;
return result;
}
public String[]unitMarks(int[]grades,String[]unitCode){
双和=0;
适用于(双i:等级){
总和+=i;
}
双平均=(总和/等级.长度);
字符串[]结果=新字符串[grades.length+1];
对于(int i=0;i
有两种方法。
1.使用ArrayList,当您向其中添加元素时,它的大小会增加
public List<String> unitMarks(int[] grades, String[] unitCode)
{
List<String> unitCodeArrayList = new ArrayList<String>();
double sum = 0;
for (double i : grades)
sum += i;
double average = (sum/grades.length);
for (int i = 0; i <grades.length; i++)
{
String combination = unitCode[i]+grades[i];
unitCodeArrayList.add(combination);
}
unitCodeArrayList.add("Average:"+average);
return unitCodeArrayList;
}
公共列表单位标记(int[]等级,String[]单位代码)
{
List unitCodeArrayList=新建ArrayList();
双和=0;
适用于(双i:等级)
总和+=i;
双平均=(总和/等级.长度);
对于(int i=0;i如果只需要显示值,可以使用Stream计算平均值并一次性显示:
private void displayGradesAndAverage(int[] grades, String[] unitCode) {
IntStream.range(0, grades.length)
.peek(i -> System.out.print(unitCode[i] + grades[i] + ", "))
.map(i -> grades[i])
.average()
.ifPresent(avg -> System.out.println("Average:" + avg));
}
public String[] unitMarks(int[] grades, String[] unitCode)
{
double sum = 0;
for (double i : grades)
sum += i;
double average = (sum/grades.length);
for (int i = 0; i <grades.length; i++)
{
String combination = unitCode[i]+grades[i];
unitCode[i] = combination;
}
String[] resUnitCode = appendArray(unitCode, "Average:"+average);
return resUnitCode;
}
private String[] appendArray(String[] array, String x){
String[] result = new String[array.length + 1];
for(int i = 0; i < array.length; i++)
result[i] = array[i];
result[result.length - 1] = x;
return result;
}
private void displayGradesAndAverage(int[] grades, String[] unitCode) {
IntStream.range(0, grades.length)
.peek(i -> System.out.print(unitCode[i] + grades[i] + ", "))
.map(i -> grades[i])
.average()
.ifPresent(avg -> System.out.println("Average:" + avg));
}