2013-07-15 93 views
0

我下面的代码添加到一个新的类我用Java创建:(String []参数)是什么意思?

public static void main(String[] arguments) { 

我明白公众,静态和无效的意思,但到底是什么(String[] arguments)是什么意思?

+7

我建议你阅读[Java教程](http://docs.oracle.com/javase/tutorial/)。 –

+0

请参阅[docs.oracle.com有关命令行参数的Java教程](http://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html) –

+0

@ dimo414这不是同一个问题 - 它是问*为什么*,这是问*什么*。 –

回答

9

main()方法,如果你的程序是一样

java YourClass arg1 arg2 

通过控制台运行现在,如果你遍历String []

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

可以采取String类型的输入参数,内main()它应该打印

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 
+1

在你的演示中,我建议首先验证'args'的长度。 –

+1

@PaulBellora更新。谢谢。 –

1

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

1

String[] arguments是运行时参数到您的java程序的数组。如果需要,你可以通过arguemnts到您的Java程序是这样的:

java yourJavaMainClass args1 args2 

在Java代码中,你可以使用简单地在这个遍历数组提供的参数。

arguments[0] // this should give you the args1 
0

运行程序和th e提供的输入存储在obj数组中。所以如果你运行这个类作为java className a1 a2那么对象数组将有a1和a2作为元素。

或者,如果你正在使用Eclipse IDE中的去跑/调试配置,做如图所示 enter image description here

1

这些是主要的函数需要的参数。

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

从命令行

java className stringOne stringTwo 

在程序 注:指..所以在参数

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

或阅读以此为stringObject如果你知道字符串的确切数额,将在参数是两人随后

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

输出 - >

stringOne

stringTwo

希望这有助于!祝你好运学习Java

2

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

在该行的其余部分的情况下,main作为输入,“一个阵列,其中在它的内部的每一个元素是至少一个字符串,我们将其命名为参数”

由于这是该方法方法调用中,有一个特殊的“正则参数传递的规则例外”。如果您的输入未在程序的某个其他部分中定义,则看起来像这样的方法只有很少几次之一。取而代之的是,Java虚拟机通过您为JVM提供的命令行参数构造了此方法的输入。

+0

知道你有引号,但是在讨论Java时,它的英语语言意义上仍然会有'exception'这个词,尤其是对于初学者:) – anotherdave

+1

@anotherdave根据你的建议,我修改了工作方式,希望更清晰。 –

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 
相关问题