java中的main()参数

java中的main()参数,java,main,Java,Main,我正在尝试为接收字符串作为输入的程序编写代码。 当用户未放入任何数据时,程序将打印“Error”,否则将打印第一个字符串参数 将无数据称为“空”是否正确? 它不起作用。我应该写什么 public class Try { public static void main(String[] args){ if (args[0]==null){ System.out.println("Error- please type a string"); }else {System

我正在尝试为接收字符串作为输入的程序编写代码。 当用户未放入任何数据时,程序将打印“Error”,否则将打印第一个字符串参数

将无数据称为“空”是否正确? 它不起作用。我应该写什么

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]);}

    }
}

如果参数首先存在,则它们永远不会为
null
——要检查这一点,应使用
args.length

if (args.length == 0) {
  ...
} else {
  ...
}

看起来这是从命令行调用的。如果用户不提供任何参数,则
args
的长度将为0,因此
args[0]
将是索引越界错误。您希望检查
args的长度,而不是检查null。不完全-您希望
args.length==0

if (args.length==0){
    System.out.println("Error- please type a string");
}
else {
    System.out.println(args[0]);
}

对于当前代码,如果没有参数,它将抛出一个异常,因为数组的长度为0,访问任何元素都将抛出
IndexOutOfBoundsException

您需要测试
args.length
是否为0。

如果值为0,您可以检查args属性“length”的值,这意味着用户不放置任何数据

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]);
    }
}

@马赫什:这在Java中是不正确的。args[0]始终是第一个参数,如果至少有一个(否则,数组长度为0)@JB Nizet-您是正确的。只是与
C++
混淆了。将删除我的评论。谢谢