当前位置:  开发笔记 > 编程语言 > 正文

什么是"String args []"?主方法Java中的参数

如何解决《什么是"Stringargs[]"?主方法Java中的参数》经验,为你挑选了12个好方法。

我刚刚开始用Java编写程序.以下Java代码是什么意思?

public static void main(String[] args)

什么是String[] args

你什么时候用这些args

源代码和/或示例优于抽象解释



1> Dan Lew..:

在Java中,args包含提供的命令行参数作为String对象数组.

换句话说,如果你运行你的程序,java MyProgram one two那么args将包含["one", "two"].

如果你想输出内容args,你可以像这样循环它们......

public class ArgumentExample {
    public static void main(String[] args) {
        for(int i = 0; i < args.length; i++) {
            System.out.println(args[i]);
        }
    }
}


args索引从0开始.(与C相反,为您提供程序的名称)
值得注意的是,`args`不一定必须命名为`args`(你可以任意命名) - 尽管最好遵循惯例.你也可能不时看到`String ... args`,这是等价的.

2> mR_fr0g..:

这些是Java中的命令行参数.

换句话说,如果你跑

java MyProgram一两个

然后args包含:

[ "一二" ]

public static void main(String [] args) {
    String one = args[0]; //=="one"
    String two = args[1]; //=="two"
}

这样做的原因是将应用程序配置为以特定方式运行或为其提供所需的一些信息.


如果您是Java新手,我强烈建议您阅读官方Oracle的Java TM教程.



3> mipadi..:

args包含调用时传递给Java程序的命令行参数.例如,如果我像这样调用程序:

$ java MyProg -f file.txt

然后args将是一个包含字符串"-f"和数组的数组"file.txt".



4> Ajinkya..:

以下答案基于我的理解和一些测试.

什么是String [] args?

答案 - >

String [] - > As我们知道这是一个简单的String数组.

args - >是一个数组的名称,它可以是任何东西(例如a,ar,参数,参数,参数)没有编译器和执行的问题,我也测试过.

例如
1)public static void main(String []参数)

2)public static void main(String []参数)

你什么时候使用这些args?

Ans->

主要功能由开发人员非常智能地设计.实际思维非常深刻.这基本上是在考虑基于命令行参数的C&C++的基础上开发的,但现在没有人更多地使用它.

东西1-用户可以从命令行输入任何类型的数据,可以是Number或String&必须由编译器接受它我们应该使用哪种数据类型?看东西2

Thing 2- String是支持Java中所有原始数据类型的数据类型,如int,long,float,double,byte,shot,char.您可以使用任何原始数据类型轻松解析它.

例如,以下程序已编译和执行,我也进行了测试.

如果输入是 - > 1 1

// one class needs to have a main() method
public class HelloWorld
{
  // arguments are passed using the text field below this editor
  public static void main(String[] parameter)
  {    
System.out.println(parameter[0] + parameter[1]); // Output is 11

//Comment out below code in case of String
    System.out.println(Integer.parseInt(parameter[0]) + Integer.parseInt(parameter[1])); //Output is 2
    System.out.println(Float.parseFloat(parameter[0]) + Float.parseFloat(parameter[1])); //Output is 2.0    
    System.out.println(Long.parseLong(parameter[0]) + Long.parseLong(parameter[1])); //Output is 2    
    System.out.println(Double.parseDouble(parameter[0]) + Double.parseDouble(parameter[1])); //Output is 2.0    

  }
}



5> Cuga..:

String [] args 也是你如何在Java中声明一个字符串数组.

在此方法签名中,args调用方法时将使用值填充数组(如此处的其他示例所示).既然你正在学习,那么值得理解的是,这个args数组就像你自己在一个方法中创建一个,就像这样:

public void foo() {
    String [] args = new String[2];
    args[0] = "hello";
    args[1] = "every";

    System.out.println("Output: " + args[0] + args[1]);

    // etc... the usage of 'args' here and in the main method is identical
}



6> Igoranze..:

即使是OP只是在谈论String[] args,我想给出一个完整的例子public static void main(String[] args).

Public:是一个Access Modifier,它定义了谁可以访问此方法.公共意味着任何类都可以访问此方法(如果其他类能够访问此类.).

Static:是一个标识类相关事物的关键字.这意味着给定的方法或变量与实例无关,但与类相关.可以在不创建类实例的情况下访问它.

Void:用于定义方法的返回类型.它定义了方法可以返回的内容.Void表示Method不会返回任何值.

main:是方法的名称.JVM将此方法名称作为仅具有特定签名的应用程序的起点进行搜索.

String[] args :是主方法的参数.

如果你看一下JDK源代码(jdk-src\j2se\src\share\bin\java.c):

/* Get the application's main method */
mainID = (*env)->GetStaticMethodID(env, mainClass, "main",
                   "([Ljava/lang/String;)V");
...
{    /* Make sure the main method is public */
...
mods = (*env)->CallIntMethod(env, obj, mid);
if ((mods & 1) == 0) { /* if (!Modifier.isPublic(mods)) ... */
    message = "Main method not public.";
    messageDest = JNI_TRUE;
    goto leave;
...

您可以看到java 中的起始方法必须已命名,main并且必须具有特定的签名public static void main(String[] args)

该代码还告诉我们public static void main(String[] args),如果你将(jdk-src\j2se\src\share\bin\java.c)中的代码更改为另一个签名,它不会修复,它会起作用但是更改它会给你带来其他可能的问题因为java 规范

Offtopic:自从OP提出这个问题已经7年了,我的猜测是OP现在可以回答他自己的问题了.



7> Jaimin Patel..:

我会分手

public static void main(String args[])

部分.

"public"表示可以从任何地方调用main().

"static"表示main()不属于特定对象

"void"表示main()不返回任何值

"main"是函数的名称.main()很特别,因为它是程序的开始.

"String []"表示String数组.

"args"是String []的名称(在main()的主体内)."args"并不特别; 你可以把它命名为其他任何东西,程序也会这样.

String[] args是一个由空格分隔的字符串集合,可以在终端上输入程序.更多的时候,初学者不会使用这个变量,但总是存在以防万一.



8> Zac..:

完成代码后,您将把它变成扩展名为.java的文件,可以通过双击来运行,也可以通过控制台(Mac上的终端,Windows上的cmd.exe)运行,让用户可以许多事情,许多东西.有一件事是他们可以看到控制台消息(System.out.print或System.out.println),如果他们双击它们就看不到它们.他们可以做的另一件事是指定参数,所以通常你会使用这条线

java -jar MyCode.jar

导航到程序的文件夹后

cd C:My/Code/Location

在窗户或

cd My/Code/Location

在Mac上(注意mac不那么笨重)来运行代码,但是要指定你要使用的参数

java -jar MyCode.jar parameter1 parameter2

存储在args数组中的这些参数可以在程序中使用,您希望允许用户控制特殊参数,例如要使用的文件或程序可以有多少内存.如果您想知道如何使用数组,您可能会在此网站上找到一个主题或只是google它.请注意,可以使用任意数量的参数.



9> sedeh..:

我认为上面的答案很好地涵盖了它String args[]只是一个字符串参数数组,您可以在运行它时传递​​给您的应用程序.为了完成,我可以补充一点,将传递给main方法的方法参数定义为String类型的变量参数(varargs)也是有效的:

public static void main (String... args)

换句话说,该main方法必须接受String array(String args[])或varargs(String... args)作为方法参数.这个名字args也没有神奇之处.您也可以写一下,arguments甚至freddiefujiwara如下所示:

public static void main (String[] arguments)

public static void main (String[] freddiefujiwara)



10> shsteimer..:

当从控制台执行java类时,main方法就是所谓的.为了实现这一点,必须定义这个主要方法

public static void main(String [])

这个字符串数组被称为args的事实是标准约定,但不是严格要求的.您将在调用程序的命令行中填充此数组

java MyClass a b c

这些通常用于定义程序的选项,例如要写入或读取的文件.



11> 小智..:

in public static void main(String args []) args是一个控制台行参数的数组,其数据类型为String.在这个数组中,你可以通过在命令行调用它们来存储各种字符串参数,如下所示: java myProgram Shaan Royal 然后Shaan和Royal将作为arg [0] ="Shaan"存储在数组中; ARG [1] = "皇家"; 如果不在命令行中调用它们,也可以在程序内手动执行此操作.



12> 小智..:

用简单的外行人的语言解释.

当我们将JVM引导到类名时,main方法需要我们提供一些参数.这意味着,假设您的文件名是Try.java,现在要在命令提示符中执行此操作,您可以编写"javac Try.java"进行编译,然后执行"java Try".现在假设您不是简单地写"java Try"而是编写"java Try 1".在这里你传递了一个参数"1".即使您未在代码中使用它,也将使用main方法.

如果要检查主方法是否实际采用了参数"1".只需在main方法中输入以下内容:

for(int i = 0; i < args.length; i++) {
        System.out.println("Argument is: "+args[i]);
    }

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有