一、题目
编写一个程序,打印出从命令行获得的三个参数。为此,需要确定命令行数组中String的下标。
二、思路
此处是练习如何从命令行传递数据到main函数中。
三、解题
3.1 程序
package chapter02;
public class E2_InputStringArgs {
public static void main(String[] args) {
int argsLength = args.length;
System.out.println("argsLength:" + argsLength);
for(int i = 0; i < argsLength; i++){
System.out.println("args["+ i + "]" + "=" + args[i]);
}
}
}
3.2 控制台输入
$ javac chapter02/E2_InputStringArgs.java
$ java chapter02/E2_InputStringArgs test1 test2 test3
3.3 注意
当类中包含包名时(package chapter02),在控制台直接执行java E2_InputStringArgs报"错误: 找不到或无法加载主类"。需要携带回退到包路径前面一级目录,然后将包路径放到要编译执行的类前进行编译执行。例如“javac chapter02/E2_InputStringArgs.java”。
原因分析:当要执行类中包含包路径时,java会认为包路径是当前目录下要进一步读取的目录,然后去读取包路径后面的类名。如果当前目录已经在/chapter02下,直接执行java E2_InputStringArgs会执行/chapter02/chapter02/E2_InputStringArgs,自然找不到要加载的类。
四、结果
从结果中可以发现,java+待执行类+参数 便能将多个参数传递到函数中。
$ javac chapter02/E2_InputStringArgs.java
$ java chapter02/E2_InputStringArgs test1 test2 test3
argsLength:3
args[0]=test1
args[1]=test2
args[2]=test3
结构:题目、思路、解题、纠错&对比、结果