Java命令行参数解析:从C D E F输出EF的原因与扩展
在做题的时候,我遇到了如下问题:

C类{
公共静态无效主(字符串[] args){
for(int i = 1; i < args.length; i++) {
System.out.print(args[i]);
在命令行中执行:java CDEF
那么输出是
(A) CDEF (B) DEF (C) EF (D) F
乍一看,我想我选择B是因为for循环从1开始,而C是args[0],所以打印了DEF。
运行后打印C:EF
仔细想了想,java C是执行程序,D是args[0]
于是我自己扩展了关于Java的命令行参数。
Java命令行参数
1.什么是命令行参数?
例如:java Test1 365 156“中国”
注意:(上面的Test1必须是主类,否则无法运行)
2. 谁接收命令行参数?
程序从调用函数 main() 开始。这样做时,两个参数被赋予 main(),
其中之一描述了命令行参数的数量,通常称为argc;另一个是命令行参数数组,通常称为argv。 (C语言中,标准的main函数是这样的)
命令行参数都是字符串,所以argv的类型是char*[argc+1]。程序的名称也以argv[0]的形式传入,
所以argc的值至少是1。这个参数列表总是以0结尾,即argv[argc]==0。 [1]
3、命令行传递参数时需要注意什么?
命令行参数以空格分隔。但是,如果命令行参数本身包含空格,则
该参数必须用一对双引号引起来。
例如:java Test1 365 156 China“中国北京”
4、如何在命令行中输入*(乘法):如果在命令行中直接输入*(乘法),系统会将其处理成当前路径名的几个字符串。如果你想让*表示乘法,你应该输入“*”或者“*”,从args中获取字符串后,使用trim()去掉两端的空格。当然,你也可以输入“#*”,然后想办法去掉前面的#,也就是只要不单独输入*就可以了。
5. Total Commander 启动时,您可以使用一两个文件夹作为命令行参数。这些文件夹用于在一侧或两侧设置文件窗口。这样,你就可以在程序或启动菜单中为Total Commander创建多个图标,每个Total Commander启动后都会打开不同的文件夹甚至压缩包。并且可以指定不同的ini文件,而不仅仅是默认的wincmd.ini,这样同一台机器上的不同用户可以有不同的设置。