Android循环阵列生成问题

时间:2014-11-11 15:57:56

标签: android arrays

我试图用这种方式编写一个使用基本模式生成数组的方法: 该方法使用基本模式和X值,并且必须以循环方式创建大小为X base的结果数组

如果我有

String base[] = "A", "B", "C"

如果x=4结果应为

res[] = "A", "B", "C"

如果x=11

"A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B"

等等

我的代码就是这个

public static String[] circ(Context c, int size){
            String[] base = {c.getResources().getString(R.string.ChannelA), c.getResources().getString(R.string.ChannelB), c.getResources().getString(R.string.ChannelC)};
            String res[];
            if(size>base.length){
                int deltaSize=size-base.length;
                int listSize=base.length+deltaSize;
                res=new String[listSize];
                for(int i=0; i<listSize; i++){
                    if(i<base.length){
                        res[i]=base[i];
                    }
                    else{
                        res[i]=base[i-base.length];
                    }
                }
            }
            else{
                res=base;
            }
            return res;
        }

但不起作用,我找不到有什么问题。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您应该使用模运算,它使代码更容易:

public static String[] circ(Context c, int size){
    String[] base = /.../
    String res[];

    for (int i = 0; i < size; i++) {
        res[i] = base[i % base.length];
    }

    return res;
}