【问题标题】:main() arguments in javajava中的main()参数
【发布时间】:2011-03-11 16:46:22
【问题描述】:

我正在尝试为接收字符串作为输入的程序编写代码。 当用户没有输入任何数据时,程序打印“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]);}

    }
}

【问题讨论】:

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

标签: java main


【解决方案1】:

参数永远不会是null,如果它们首先存在——要检查它,你应该使用args.length来代替:

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

【讨论】:

    【解决方案2】:

    不完全——你想要args.length==0

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

    使用您当前的代码,如果没有参数,它将引发异常,因为数组的长度为 0,因此访问任何元素都会引发 IndexOutOfBoundsException

    【讨论】:

      【解决方案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]);
          }
      }
      

      【讨论】:

        【解决方案4】:

        看起来这是从命令行调用的。如果用户没有提供任何参数,那么 args 的长度将为 0,因此 args[0] 将是索引越界错误。而不是检查 null 你想检查args的长度。

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-08-25
            • 2022-06-20
            • 1970-01-01
            • 2012-10-16
            • 2011-04-26
            • 2020-04-12
            • 2015-08-25
            • 2012-06-02
            相关资源
            最近更新 更多