我正在尝试为将字符串作为输入重新编写的程序编写代码。 当用户没有输入任何数据时,程序会输出“Error”,否则会输出第一个字符串参数。
将没有数据称为“null”是否正确? 这是行不通的。我该怎么写呢?
public class Try {
public static void main(String[] args){
if (args[0]==null){
System.out.println("Error- please type a string");
}else {System.out.println(args[0]);}
}
}
答案 0 :(得分:11)
如果参数首先存在,则永远不会是null
- 为了检查这一点,您应该使用args.length
代替:
if (args.length == 0) {
...
} else {
...
}
答案 1 :(得分:3)
不完全 - 你想要args.length==0
:
if (args.length==0){
System.out.println("Error- please type a string");
}
else {
System.out.println(args[0]);
}
使用当前代码,如果没有参数,它将抛出异常,因为数组长度为0,因此访问任何元素将抛出IndexOutOfBoundsException
。
答案 2 :(得分:3)
你可以检查args的属性“length”的值,如果值是0,这意味着用户没有放任何数据
public class Try {
public static void main(String[] args){
if (args.length == 0) {
System.out.println("Error- please type a string");
} else {
System.out.println(args[0]);
}
}
答案 3 :(得分:2)
看起来这是从命令行调用的。如果用户未提供任何参数,则args
的长度为0,因此args[0]
将成为索引超出范围的错误。您需要检查args
的长度。
答案 4 :(得分:1)
您需要测试args.length
是否为0。