【问题标题】:Array of integers as command line argument along with other commands整数数组作为命令行参数以及其他命令
【发布时间】:2019-12-02 07:48:17
【问题描述】:

所以对于我的 JAVA 程序,用户必须使用命令行或 Linux 环境提供 6 个参数。这 6 个命令之一是一个数字列表,我在程序中将它们作为整数数组。

我不太熟悉它如何在数字列表中作为第 6 个参数读取?计算机不会认为它是几个参数而不是一个参数的多个数字吗? 任何帮助将不胜感激:)

【问题讨论】:

  • 只需指定数字列表必须是参数中的最后一个。这样,在阅读了前 5 个单个参数后,您可以一直阅读到最后,并且您知道它们一定是列表的一部分。

标签: java command-line-arguments


【解决方案1】:

没错,Java 会将多个间隔参数解释为各自独立的参数,并将每个参数分别放入您的 mainString[] args 参数中。但是,您仍然可以通过指定最后一个参数必须是数字列表来处理此问题。这样做,您可以简单地在第 5 个参数之后循环,并确信您得到的所有内容都应该是列表的一部分。

public static void main(String[] args) {
     // handle first 5 args

     for (int i = 5; i < args.length; ++i) {
          // everything accessed by args[i] at this point is a part of your list
     }
}

然后您可以通过java 命令指定输入

java -jar MyApp.jar arg1 arg2 arg3 arg4 arg5 int1 int2 int3 int4 int5 int6
# int1 to int6 will be read by the loop

【讨论】:

  • 在你的第一个代码中,你循环直到 args.length,这不是给了我们整个参数的长度吗?它怎么知道我们指的是第 6 个参数长度?
  • 我们首先引用 5 (i = 5) 处的索引,而不是 0。因此,它将跳过数组的前 5 个元素,并且仅从第 6 个参数及以后开始工作.
  • 对于循环 ++i 是故意的还是应该是 i++?
  • 这是故意的,并不重要。它们之间的区别相对微妙,在这种情况下,它根本不重要。随意使用。
猜你喜欢
  • 1970-01-01
  • 2011-06-15
  • 2023-04-06
  • 2012-10-04
  • 2010-11-03
  • 2016-02-17
  • 1970-01-01
  • 2020-12-30
  • 1970-01-01
相关资源
最近更新 更多