首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命令行参数

命令行参数
EN

Stack Overflow用户
提问于 2017-11-09 11:50:17
回答 5查看 244关注 0票数 0

我创建了一个名为Human的类,它可以正常工作,需要两个参数,年龄和名称,才能创建一个人。

要创建带有命令行参数的Human,我想要编写

"Anna“25

它应该用thatname="Anna"thatage=25创建一个人,其中25是一个int。

我编写的代码是创建一个名为参数的列表,并遍历它以找到-H。我需要这样做,因为稍后我将使用它创建不同的类。我只需要在我编写thename=theage=的行的语法方面提供帮助,因为我不知道如何获得next item in listnext-next item in list

代码语言:javascript
复制
public static void main(String[] args) {
    ArrayList<String> Argument = new ArrayList<String>();       

    for (String item: args) {
        Argument.add(item);         
    }

    for (String item2: Argument) {
        if (item2 == "-H") {
            thatname = Argument.get(item2+1)
            thatage = Argument.get(item2+2)
            Human person = new Human(thatname,thatage);
            System.out.println(person);
        }
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-11-09 12:09:06

为什么不直接绕一圈火箭呢?

代码语言:javascript
复制
for ( int i = 0; i < args.length; i++ ) }
    if (args[i].equals("-H")) {
       i++;
       thatName = args[i];
       i++;
       thatAge = args[i];
    }
}

如果没有遵循所设置的规则,则应该添加一些要捕获的代码。可能没有足够的争论或者其他人在键盘上做的事情..。

票数 1
EN

Stack Overflow用户

发布于 2017-11-09 12:11:05

代码语言:javascript
复制
thatname = Argument.get(Argument.indexOf(item2)+1);
thatage = Argument.get(Argument.indexOf(item2)+2);

或者您知道第一个元素是-H,第二个元素是name,第三个元素是age,所以您可以直接使用下面的代码

代码语言:javascript
复制
thatname = Argument.get(1);
thatage = Integer.parseInt(Argument.get(2));
票数 1
EN

Stack Overflow用户

发布于 2017-11-09 12:19:54

您的代码有一些问题,让我解释给您的帮助。

  1. 不能将字符串与==进行比较,必须在字符串中使用等于方法来比较两个字符串。
  2. 您必须将这个循环用于(int= 0;i< Argument.size();i++)语法,以便可以从零迭代到列表中的项目数。
  3. 获取ArrayList中的方法,以索引为参数,并在该索引处返回值。
  4. 您可以添加i += 2来跳过接下来的两个迭代,这将返回人工的名称和年龄值。(这是可选的)

这里是工作代码:

代码语言:javascript
复制
public static void main(String[] args) {
ArrayList<String> Argument = new ArrayList<String>();       

for (String item: args) {
    Argument.add(item);         
}

String currentItem; 
for (int i = 0; i < Argument.size(); i++) { // it will iterate through all items

    currentItem = Argument.get(i); // getting the value with index;

    if (currentItem.equals("-H")) {

        String thatname = Argument.get(i+1);
        String thatage = Argument.get(i+2);

        i += 2; // Skipping 2 iterations of for loop which have name and age human.

        Human person = new Human(thatname,thatage);
        System.out.println(person);

        }

    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47201124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档