首页 > 编程语言 > 解决java main函数中的args数组传值问题
2021
02-21

解决java main函数中的args数组传值问题

这几天面试中有遇到关于main数组中的args数组传值的问题,一般是从命令提示符中传值,也可以直接在java代码中赋值。

而且这个数组的长度是动态的,根据传值的个数确定数组的长度。

1.从命令提示符中传值

我在桌面新建了一个文本文档重命名为TestMain.java,代码如下

public class TestMain {  
  public static void main(String[] args) { 
    System.out.println("hello "+args[0]); 
    System.out.println("welcome "+args[1]); 
  }  
} 

按住shift在桌面单击鼠标右键,在此处运行命令提示符

输入命令javac TestMain.java编译成功后,在运行java TestMain aa bb cc dd

截图如下

此时如果输出args.length长度应该为4

2.直接在java代码中赋值,eclipse中代码如下

//测试java中main函数args数组的使用
public class TestMainArgs {
 
 /**
 * @param args
 */
 public static void main(String[] args) {
 args = new String[]{"abc","def","ghi"};
 System.out.println(args.length);
 System.out.println(args[0]);
 
 }
 
}

输出结果是

3

abc

补充:Java中String [] args中的args是什么意思

String args[] 与 String[] args 没有区别,都可以执行,但推荐使用 String[] args,这样可以避免歧义和误读。

Java 中args一般存在main主类方法内,String args[ ]或者String[ ] args表示给主方法传一个字符串数组. 而args是一个字符串数组的变量名,不是关键字,是arguments的缩写,只是一个默认名,一般都习惯性照写.

如下:

1. 可以从run config里面设置参数

如下图:

2. 拿到这个args设置的刚才的参数“20 30”,打印出来:

3. 如果不设置参数直接输出args[0]会报错

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0

at args参数问题.ArgsTest.main(ArgsTest.java:8)

如图:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持自学编程网。如有错误或未考虑完全的地方,望不吝赐教。

编程技巧