我试着在命令行输入以下内容:java class name 10 -obut it has to work without the -o.
public static void main (String[] args){
int n = Integer.parseInt(args[0]);
String a;
if (args[1] != "-o" || args[1] == null) {
a = "emtpy";
}
}
public static void p(int n, String a){
当我在不使用-o的情况下进行操作时,总是会出现这样的错误:不幸的是,这个错误总是会出现。Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1 at class name.main(eratosthenes.java:4)
不要测试 String
与...平等 !=
并做检查 args.length
(非为 null
).
if (args.length > 1 && !args[1].equals("-o")) {
a = "empty";
}
args的大小是在你运行java命令后决定的,所以它会被初始化成这样。
String args[1] = {"10"};
所以,你必须检查args的大小 (args.length
).
另外,我建议你总是检查它的大小,因为如果你在没有任何输入参数的情况下运行java命令,它将在第一行抛出NPE main
方法。
实施例。
int n;
String a;
if (args.length == 0) {
n = 0;
a = "empty"
} else if (args.length == 1) {
n = Integer.parseInt(args[0]);
a = "empty"
} else {
n = Integer.parseInt(args[0]);
a = args[1];
}
// other code here
p(n,a); // call the method you want
当然,这不是最聪明的,但它会工作。
另外,看来你是个java初学者,我建议你先看一些java指南,然后再开始调试:)。