我创建了一个名为Human
的类,它可以正常工作,需要2个参数,年龄和名称来创建人类。
要使用命令行参数创建一个Human,我想写
java文件名-H“Anna”25
它应该创建一个人thatname="Anna"
和thatage=25
,其中25是一个int。
我编写的代码是创建一个名为Argument的列表,并通过它迭代查找-H
。我需要这样做,因为我将在以后使用它来创建不同的类。我只需要帮助我编写thename=
和theage=
行的语法,因为我不知道如何获取next item in list
和next-next item in list
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);
}
答案 0 :(得分:1)
为什么不循环args?
for ( int i = 0; i < args.length; i++ ) }
if (args[i].equals("-H")) {
i++;
thatName = args[i];
i++;
thatAge = args[i];
}
}
如果没有遵循您设置的规则,您应该添加一些代码来捕获。可能没有足够的论点或人类在键盘上做的其他事情......
答案 1 :(得分:1)
thatname = Argument.get(Argument.indexOf(item2)+1);
thatage = Argument.get(Argument.indexOf(item2)+2);
或者你知道第一个元素是-H
,第二个元素是name
,第三个元素是age
,所以你可以直接使用下面的代码
thatname = Argument.get(1);
thatage = Integer.parseInt(Argument.get(2));
答案 2 :(得分:1)
您的代码存在一些问题,请让我向您解释一下。
以下是工作代码:
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);
}
}
}
答案 3 :(得分:0)
为什么在直接使用args时使用数组列表?虽然你只有两个参数,但不要使用for循环访问它们直接。
你应该知道的一件事是String是java中的一个对象,所以比较两个带有==
符号的字符串将返回false,即使它们具有相同的值(==将比较对象的id),你应该使用{{ 1}}比较对象值的函数。
查看此代码:
.equale()
答案 4 :(得分:0)
您无法使用> php index.php
start: 00:01:48,387<br />
stop: 00:01:53,269<br />
startMS: 108387<br />
stopMS: 113269<br />
text: ┘ç┘à╪د┘ç┘┌»█î ╪▓█î╪▒┘┘ê█î╪│ ╪ذ╪د ┌ر█î┘█î╪ز ╪ذ┘┘ê╪▒█î ┘ê ┌ر╪»┌ر x265
=====================<br />
start: 00:02:09,360<br />
stop: 00:02:12,021<br />
startMS: 129360<br />
stopMS: 132021<br />
text: .┘à╪د ┘╪ذ╪د┘è╪» ╪ز┘┘ç╪د┘è┘è ╪د┘è┘╪ش╪د ╪ذ╪د╪┤┘è┘à -
┌╪▒╪د ╪ا<br />
=====================<br />
start: 00:02:12,022<br />
stop: 00:02:14,725<br />
startMS: 132022<br />
stopMS: 134725<br />
text: ..╪د┌»┘ç ┘╛╪»╪▒╪ز -
.╪د┘ê┘ ┘ç┘è┌┘ê┘é╪ز ┘à╪ز┘ê╪ش┘ç ╪▒┘╪ز┘┘à┘ê┘ ┘┘à┘è╪┤┘ç -<br />
=====================<br />
迭代列表。迭代列表时,您需要一个索引号,如String
list.get(indexNumber);