Java 为了满足程序的所有要求,我在代码中缺少了什么?

Java 为了满足程序的所有要求,我在代码中缺少了什么?,java,Java,我必须设计和实现一个程序,计算用户输入的整数值。生成一个表,列出从输入中标识为整数的值。提供这些数字的总和和平均值。这是我到目前为止得到的 public class Table { public static void main(String [] strAng) { int sum = 0; double average; int min = 1; int max = 10; for(int number = min; number <=

我必须设计和实现一个程序,计算用户输入的整数值。生成一个表,列出从输入中标识为整数的值。提供这些数字的总和和平均值。这是我到目前为止得到的

public class Table {
public static void main(String [] strAng) {
    int sum = 0;
    double average;
    int min = 1;
    int max = 10;

    for(int number = min;
    number <= max; ++number) {
        sum += number;
    }



    System.out.print("Sum:" +sum);
    System.out.print("Average:" +average);
公共类表{
公共静态void干管(字符串[]绞线){
整数和=0;
双倍平均;
int min=1;
int max=10;
对于(整数=min;

数字您并没有从用户那个里得到输入,而且您也并没有做任何平均值的事情

尝试此代码,如果您有其他要求,请更新问题

    int sum = 0;
    double average;
    Scanner userInputScanner = new Scanner(System.in);

    System.out.println("Please enter the integers with space between each two integer: ");
    String inputNumberFilePath = userInputScanner.nextLine();

    String[] numStrArray = inputNumberFilePath.split(" ");

    for (String string : numStrArray) {
        sum += Integer.parseInt(string);
    }

    average = (double) sum / (double) numStrArray.length;
    System.out.println("Sum: " + sum);
    System.out.println("Average: " + average);
输出样本:

Please enter the integers with space between each two integer: 
10 20 30 40 50
Sum: 150
Average: 30.0

我不确定这是否正是你想要的,但它可能是。使用此代码,你可以输入一个包含整数的字符串。整数被提取、计数,并对基本上是条形图的对象执行求和和和平均运算。希望这对你有所帮助

import java.util.*;
public class Table {
此部分用于读取包含的任何用户输入字符串

public static String getInput(){
    String outPut = "";
    System.out.println("Type something to parse: ");
    Scanner sc = new Scanner(System.in);
    if(sc.hasNextLine()) {
        outPut = sc.nextLine();
    }
    return outPut;
}
在这里,我们构建“条形图”:


您没有收到任何用户输入?…欢迎使用Stack Overflow!请通读,尤其是,很明显,缺少的是任何读取用户输入的尝试。因此,请进行相关主题的研究,并尝试这样做。如果在进行更多研究和搜索后,您陷入困境,无法摆脱困境,请发布您的尝试并明确指出你的困境。人们会很乐意提供帮助。祝你好运!如果你的代码没有编译,那么它满足要求的可能性很小。这是不可能的,因为你还没有初始化
average
(加上缺少右括号)。您必须将
numStrArray.length
转换为
double
,否则java会将结果取整:
average=sum/(double)numStrArray.length;
是的,您是对的,
sum
length
都必须转换为
double
,我已经更改了,谢谢。
public static Map<Long,Integer> makeTable(String input){

    Map<Long,Integer> table = new HashMap<>();

    long in = Long.parseLong(input);
    long lastDig = 0;
    int count = 1;
    while(in > 0){

    lastDig = in % 10;
    in /= 10;

    if(!table.containsKey(lastDig)) {
        table.put(lastDig, count);
    } else {
        table.replace(lastDig,count,count+1);
    }

    }

    return table;
}
public static int sum(Map<Long,Integer> table){
    int sum = 0;
    for (Long key: table.keySet()
         ) {
        sum += (key*table.get(key));
    }
    return sum;
}
public static int average(Map<Long,Integer> table){
    int sum = 0;
    int divisor = 0;
    for (Long key: table.keySet()
            ) {
        sum += (key*table.get(key));
        divisor += table.get(key);
    }
    return sum/divisor;
}

public static void main(String[] args){

    int sum = 0;
    double average = 0;
    String input = "";
    input = getInput();
    System.out.println("Unsanitized In: " + input);
    input = input.replaceAll("[^\\d.]","");
    Long.parseLong(input);

    System.out.println("Sanitized In: " + input);

    Map<Long,Integer> myMap = makeTable(input);
    System.out.println(myMap);

    System.out.println("Sum:" +sum(myMap));
    System.out.print("Average:" + average(myMap));

}
 Unsanitized In: asdf45313ha
 Sanitized In: 45313
 {1=1, 3=2, 4=1, 5=1}
 Sum:16
 Average:3