Java 仅打印用户输入且严格低于平均值的数字

Java 仅打印用户输入且严格低于平均值的数字,java,Java,现在计算出平均值,我试着打印出用户的输入,只在它自己的行中,严格地低于平均值。我尝试过这样做,但出现了一个错误“二进制运算符的操作数错误” 要在一行中打印每个双: System.out.println(avg); for (int i = 0; i < howMany; i++) { if(myArray[i] < avg){ System.out.println(myArray[i]);//single line for every double

现在计算出平均值,我试着打印出用户的输入,只在它自己的行中,严格地低于平均值。我尝试过这样做,但出现了一个错误“二进制运算符的操作数错误” 要在一行中打印每个

System.out.println(avg);

for (int i = 0; i < howMany; i++) {
    if(myArray[i] < avg){
        System.out.println(myArray[i]);//single line for every double
    }
}
String oneLine = "["; 
int lowerAvg = 0;
for (int i = 0; i < howMany; i++) {
if(myArray[i] < avg){
        oneLine += (i > 0 && ++lowerAvg > 0)?", ":""; // add separator
        oneLine += (myArray[i]);
    }
}
oneLine+="]";
System.out.println(oneLine);//prints like [1.0, 2.0, ...]
使用Java 8:

avg = Arrays.stream(myArray, 0, howMany).average().orElse(0);
final double finalAvg = avg;//final variable to use in filter condition
System.out.println(finalAvg);
Arrays.stream(myArray, 0, howMany).filter(x -> x < finalAvg).forEach(System.out::println);//will print every double in a single line
System.out.println(Arrays.toString(Arrays.stream(myArray, 0, howMany).filter(x -> x < finalAvg).toArray()));//Will print the array like [1.0, 2.0, ...]
avg=Arrays.stream(myArray,0,howmount).average().orElse(0);
最终双最终值=平均值//在筛选条件中使用的最终变量
系统输出打印项次(finalAvg);
stream(myArray,0,howmount).filter(x->xx
Arrays.stream(myArray,0,howMany).average().getAsDouble()
那么先生,您希望我在for循环之后添加此语句吗?无需检查
isPresent()
,只需执行
orElse(0)
orElse(avg)
。谢谢,它工作得很好。另一个问题是,如果我想打印用户在输出中输入的数字,然后是平均值,该怎么办。例如:AVERAGE:12(后跟用户之前输入的数字)x(nxtline)y(nextline)我尝试过这样做
System.out.println(myArray[i])
后跟avg语句,但它确实起作用了,但实际上不起作用。你可以在你的问题中添加你的代码,这样我们就知道你做了什么,特里迪刚刚在我的代码中添加了我为这一步所做的,还有问题sir@Jérôme
String oneLine = "["; 
int lowerAvg = 0;
for (int i = 0; i < howMany; i++) {
if(myArray[i] < avg){
        oneLine += (i > 0 && ++lowerAvg > 0)?", ":""; // add separator
        oneLine += (myArray[i]);
    }
}
oneLine+="]";
System.out.println(oneLine);//prints like [1.0, 2.0, ...]
avg = Arrays.stream(myArray, 0, howMany).average().orElse(0);
final double finalAvg = avg;//final variable to use in filter condition
System.out.println(finalAvg);
Arrays.stream(myArray, 0, howMany).filter(x -> x < finalAvg).forEach(System.out::println);//will print every double in a single line
System.out.println(Arrays.toString(Arrays.stream(myArray, 0, howMany).filter(x -> x < finalAvg).toArray()));//Will print the array like [1.0, 2.0, ...]