2

我将以下代码添加到我用 Java 创建的新类中:

public static void main(String[] arguments) {

我理解 public、static 和 void 的含义,但是 ( String[] arguments) 是什么意思?

4

7 回答 7

11

如果您的程序通过控制台运行,则您的main()方法可以采用类型的输入参数String

java YourClass arg1 arg2

现在,main()如果你迭代String []类似

for (arg : arguments)
    System.out.println(arg);

它应该打印

arg1
arg2

演示:

public class AddTwoNumbers {

    public static void main(String[] args) {
      if(args.length == 2) {
        try {
            int a = Integer.parseInt(args[0]);
            int b = Integer.parseInt(args[1]);
            System.out.println("a + b = " + a + " + " + b + " = "+ (a + b));
        } catch (NumberFormatException e) {
            System.err.println("Invalid Input: Please enter numbers.");
        }
      } else {
         System.err.println("Missing Input: Please enter TWO numbers.");
      }
    }
}

您可以在控制台上运行它

java AddTwoNumbers 2 3

它应该打印

a + b = 2 + 3 = 5
于 2013-07-15T18:38:21.613 回答
2

它的字面意思是“一个数组,其中的每个元素至少是一个字符串,我们将其命名为参数”。

在该行的其余部分的上下文中,该方法main将“一个数组,其中的每个元素至少是一个字符串,我们将其命名为参数”作为输入

由于这是public static void main(String[] arguments)方法调用,因此正常参数传递存在一个特殊的“规则例外”。看起来像这样的方法是极少数情况下您的输入未在程序的其他部分中定义的方法之一。相反,Java 虚拟机从您提供给 JVM 的命令行参数构造该方法的输入。

于 2013-07-15T18:40:31.530 回答
1

这意味着该函数需要一个字符串数组。

于 2013-07-15T18:37:55.513 回答
1

String[] arguments是您的 java 程序的运行时参数的数组。如果需要,您可以像这样将争论传递给您的 java 程序:

java yourJavaMainClass args1 args2

在您的 java 代码中,您可以使用通过简单地迭代此数组提供的参数。

arguments[0] // this should give you the args1
于 2013-07-15T18:38:10.347 回答
1

这些是 main 函数期望的参数。

String [] arguments 是 String 对象的 java 数组。这意味着主函数需要一个字符串数组。这个字符串数组通常保存程序从命令行运行时传入的所有命令行参数参数。

从命令行

 java className stringOne stringTwo

在程序 中注意:意味着在..所以读这个作为参数中的stringObject

for (stringObject : arguments) {
     System.out.println(stringObject);
}

或者,如果您知道参数中字符串的确切数量是两个,那么

System.out.println(arguments[0]);
System.out.println(arguments[1]);

输出->

字符串一

字符串二

希望这可以帮助!祝你学习Java好运

于 2013-07-15T18:39:25.147 回答
1

它是您可以在执行期间传递给程序的参数数组。前任:

java YourClass param1 100 X

在您的运行时,您将拥有这个数组

System.out.println(args.length);  //prints 3
System.out.println(args[0]); //prints param1
System.out.println(args[1]); //prints 100
System.out.println(args[2]); //prints X
于 2013-07-15T18:41:13.390 回答
0

使用命令行运行程序,那里提供的输入存储在 obj 数组中。因此,如果您运行该类,java className a1 a2则对象数组将具有 a1 和 a2 作为元素。

或者,如果您使用的是 Eclipse IDE,则转到运行/调试配置并按所示操作 在此处输入图像描述

于 2013-07-15T18:38:28.033 回答