青衣 发表于 2021-8-16 17:58:20

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

这几天面试中有遇到关于main数组中的args数组传值的问题,一般是从命令提示符中传值,也可以直接在java代码中赋值。
而且这个数组的长度是动态的,根据传值的个数确定数组的长度。
1.从命令提示符中传值
我在桌面新建了一个文本文档重命名为testmain.java,代码如下


public class testmain {
public static void main(string[] args) {
    system.out.println("hello "+args);
    system.out.println("welcome "+args);
}
}
按住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);

}

}
输出结果是


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会报错
exception in thread "main" java.lang.arrayindexoutofboundsexception: 0
at args参数问题.argstest.main(argstest.java:8)
如图:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持CodeAE代码之家
。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://blog.csdn.net/qq_24877569/article/details/51931337

文档来源:服务器之家http://www.zzvips.com/article/182994.html
页: [1]
查看完整版本: 解决java main函数中的args数组传值问题