【问题标题】:Command line arguments not being properly recognized [duplicate]命令行参数未被正确识别[重复]
【发布时间】:2014-02-17 02:46:24
【问题描述】:

在我的程序中,我尝试根据字符串 args[0] 的值循环特定操作。我有一个条件树设置,但无论 args[0] 是什么,它总是选择最后一个 else 选项,而不是我想要的选项。

以下是相关代码:

public static void main(String[] args)
{
    int a = Integer.parseInt(args[1]);
    int b = Integer.parseInt(args[2]);
    int c = Integer.parseInt(args[3]);
    int d = Integer.parseInt(args[4]);

    for (int i = -a; i <= a; i++)
    {
        for (int j = -b; j <= b; j++)
        {
            for (int k = -c; k <= c; k++)
            {
                for (int l = -d; l <= d; l++)
                {
                    if (args[0] == "rational-class")
                        rationalClass(a,b,c,d);
                    else if (args[0] == "rational-instance")
                        rationalInstance(a,b,c,d);
                    else if (args[0] == "complex-class")
                        complexClass(a,b,c,d);
                    else if (args[0] == "complex-instance")
                        complexInstance(a,b,c,d);
                    else
                        System.out.println("error");
                }
            }
        }
    }

}

【问题讨论】:

  • 字符串比较 '==';尝试使用 .equals

标签: java string command-line-arguments


【解决方案1】:

尝试用equals方法比较两个字符串,即

if (args[0].equals("rational-class")

【讨论】:

  • 作为一般说明,首先与常量进行比较更安全,例如"rational-class".equals(args[0]) 作为定义明确的 equals 方法不会抛出 NullPointerException 但 args[0] 可能为 null。
  • aaaaaa,我觉得很傻谢谢老兄,它就像一个魅力。
  • 它发生了......祝你好运,兄弟......
【解决方案2】:

如果它是您为 arg[0] 比较的字符串,则需要执行类似操作。

    args[0].equals("......")

【讨论】:

    猜你喜欢
    • 2011-10-05
    • 2019-08-21
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 2017-11-26
    • 2019-05-21
    相关资源
    最近更新 更多