【问题标题】:Finding specific argument then adding value of next one to variable查找特定参数,然后将下一个参数的值添加到变量
【发布时间】:2014-05-18 04:38:43
【问题描述】:

我是 Java 新手,需要一些帮助。我有几件事要做,我被困住了
有了这个问题。我真的不知道该怎么做......

所以在 CMD 行中如果我输入香蕉香蕉苹果苹果 -name Carlos Banana Mike -c 8 它将打印“Hello Carlos!”八次。

public class cheese {
    public static void main(String args[]) {
        for(String s: args){
             if(s.equals("-name")){
                 String p = (GIVE VALUE OF FIRST ARGUMENT AFTER "-name");
                 if (s.equals("-c")){
                    int i = Integer.parseInt(THE FIRST ARGUMENTS AFTER "-c");
                    for(int j=0; j >= i ; j++)
                    System.out.println("Hello "+p+"!");
                }
             }
         }
    }
}

【问题讨论】:

  • 使用Scanner 比通过命令行参数获取输入要好得多。
  • 你有什么问题?
  • 你的问题到底是什么?
  • 哦...嗯,它在代码中 :) 当我找到特定的命令行参数时,如果用户输入的参数数量是随机的,我如何将第一个下一个值添加到我的变量中。
  • 我希望你能理解我......遍历args,找到关键字“-name”然后将第一个参数添加到我的字符串名称旁边,找到“-c”并在后面添加第一个东西它到我的内心...

标签: java eclipse command-line-arguments


【解决方案1】:

正确解析命令行参数非常困难,并且有很多库可以提供帮助。您的示例代码可以重新排列如下以使其工作(但它没有真正的错误处理,因此有很多方法可以使它出错,例如传递“-name”两次,或者没有提供足够的参数)。

public class CmdLine {

    public static void main(String args[]) {
        String p = "";
        int i = 0;

        for (int k = 0; k < args.length; k++) {
            if (args[k].equals("-name")) {
                p = args[k + 1];
            } else if (args[k].equals("-c")) {
                i = Integer.parseInt(args[k + 1]);
            }
        }

        for (int j = 0; j < i; j++) {
            System.out.println("Hello " + p + "!");
        }
    }
}

【讨论】:

  • 好吧,我假设用户不会这样做。先生,你是我的英雄 :)
猜你喜欢
  • 2014-06-09
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-22
  • 1970-01-01
  • 1970-01-01
  • 2014-09-02
相关资源
最近更新 更多