如何使String数组递增?

时间:2012-03-04 04:31:25

标签: java string loops

我对此变得混乱,我可能知道答案。每次调用此函数时,如何使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 commandLabelCommandSender sender(抱歉,如果这听起来很粗鲁)。提前谢谢!

P.S。我不想为String[] ticket_array设置一个值,因为门票的数量应该与发送的数量一样多。

2 个答案:

答案 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];

访问所需的索引