我对此变得混乱,我可能知道答案。每次调用此函数时,如何使String[]
数组递增?
这是功能代码:
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
//The /ticket command
if(cmd.getName().equalsIgnoreCase("ticket")){
//Gets amount of arguments
int size_of_args = args.length;
String ticket = null;
String[] ticket_array;
//Puts ticket into one string to be stored.
for (int i=0; i<=size_of_args; i++){
ticket = ticket + args[i];
}
return true;
} else {return false;}
}
我想我必须做一个for循环,但我很累,而且这已经让我困扰了很长一段时间。该功能尚未完成,所以请勿提及我没有使用String commandLabel
或CommandSender sender
(抱歉,如果这听起来很粗鲁)。提前谢谢!
P.S。我不想为String[] ticket_array
设置一个值,因为门票的数量应该与发送的数量一样多。
答案 0 :(得分:3)
考虑使用List实例作为类成员,这样,您无需担心大小,例如:
List<String> commandList = new ArrayList<String>(50);
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
//The ticket command
if(cmd.getName().equalsIgnoreCase("ticket")){
String ticket = "";
// ommiting
commandList.add(ticket);
return true;
}
else {
return false;
}
}
答案 1 :(得分:0)
我不确定我是否正确理解了你的问题,但听起来我想要在每次调用函数时访问更高的数组索引。如果是这种情况,那么您可能需要考虑使用静态计数器变量。这必须在函数范围之外定义,但可以在函数调用期间递增
static int arrayCounter = 0;
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
//The ticket command
arrayCounter++;
.
.
.
}
然后使用
ticket_array[arrayCounter];
访问所需的索引