Java:命令行输入的总和给出数组*答案的长度

标签 java arrays sum partitioning

我在命令行上输入五个或更多变量并用它们创建一个数组。然后我添加这些值,但我不确定为什么它不起作用。

我的代码是:

public static void main(String args[]) {
    int t = args.length;
    int[] u;
    u = new int[t];
    int v = 0;
    for (int i=0; i<t; i++) {
        u[i]= Integer.parseInt(args[i]);
        for (int j=0; j<t; j++) {
            v = v + u[i];
            System.out.println(v);
        }
    }
}

但是,如果我输入 5 个,则输出 25。

我不确定我哪里出了问题,任何帮助将不胜感激。

注意:我的任务要求我不使用库函数。

最佳答案

1) 您在另一个 for 循环内有一个 for 循环,导致了问题。

2) 还要注意变量命名 --> 使用表达/描述其用途的变量名称。变量名 t 不太具有描述性。

3)也不需要创建额外的变量/数组。只需循环输入并将它们添加到总和中即可。

public static void main(String args[]) {
  int sum = 0;
  for (int i=0; i<args.length; i++) {
    sum  += Integer.parseInt(args[i]);
  }
  System.out.println(sum);
}
<小时/>

4) 感谢 Java 8,你可以做一个(有点复杂的)单行代码:

public static void main(String args[]) {
    System.out.println(Arrays.stream(myarray).mapToInt(Integer::parseInt).sum());
}
  • 创建字符串流 (Arrays.stream(args))
  • 将它们转换为 IntStream (mapToInt(Integer::parseInt))
  • 通过 sum() 获取 IntegerStream 的总和

关于Java:命令行输入的总和给出数组*答案的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47472517/

相关文章:

java - 快速排序 - 递归

java - 我可以运行存储在 apk 中的脚本吗?

arrays - 按特殊顺序用字符串填充二维数组

java - 从 ArrayList 获取数据然后用于计算?

java - 狐猴项目中 IndriRunQuery 的空白输出

java - Swing 需要 createBufferStrategy(2) 才能正确绘制

php - 计算嵌套数组树中的叶子数

java - 查找具有给定总和的数字子集

python - Python 中的 Sigma 表示法

python - 如何获取数字列表作为输入并计算总和?