java - 如何从用户处获取任意数量的参数并将它们传递给使用 varargs( 变量参数 ) 的方法?

标签 java

我想从用户那里获取任意数量的输入,然后将其求和作为最终产品。事实上,我在名为 sum 的方法中使用 Varargs 来从用户处获取任意数量的输入,但我的问题是如何从用户处获取该输入并将它们作为 sum 方法的参数传递。

public class calculator 
{
   public static void main(String args[])
   {
      BasicFunc obj = new BasicFunc();
      int result = obj.sum(); // here i want user to input any number of 
                              // arguments.
      System.out.println(result);
   }
}

class BasicFunc
{   
   int sum(int...x) // i have used here varargs
   {
        sum = 0;
        for(int a=0 ; a<x.length ; a++) sum += x[a];
   }
   return sum;
}

最佳答案

您可以使用:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] nums = br.readLine().split(" "); //delimitation by space or comma

由于您使用的是 int 变量参数,因此您需要先创建 int 数组,然后再将其传递给 sum 函数。

int[] numbers = new int[nums.length];
for(int i = 0;i < nums.length;i++){
   numbers[i] = Integer.parseInt(nums[i]);
}
BasicFunc obj = new BasicFunc();
int result = obj.sum(numbers);

记住在使用 BufferedReader 语句时抛出异常。 引用: https://www.geeksforgeeks.org/variable-arguments-varargs-in-java/
https://www.javatpoint.com/java-bufferedreader-class

关于java - 如何从用户处获取任意数量的参数并将它们传递给使用 varargs( 变量参数 ) 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54697562/

相关文章:

Java/Android/Eclipse : IllegalArgumentException: already added

Java servlet : xml validation against xsd

java - 斯坦福JavaNLP中如何获取父节点?

java - 在给定源坐标和目标坐标的情况下推导参数抛物线方程

c# - 需要 Java 或 .NET 中的阿拉伯语 OCR 开源

java - 使用基本函数查找最近的点对

java - 自动检测 Java 是否存在并自动启动应用程序的 JAR 安装程序

java - ExoPlayer onResume() 恢复播放状态

java - OpenGL Z 索引问题?

java - 需要javolution和jdk版本