String[] str;...
经过初始化以后,
如果我要删除str[i],然后i以后的往前移, 怎么做呢?
下面做不到这个功能
for(int j=i; j< str.length-1; j++)
  str[j]= str[j+1];

解决方案 »

  1.   

    String[] str = {"1", "2", "3"};
        ArrayList al = new ArrayList();
        for(int i = 0; i < str.length; i++){
         al.add(str[i]);
        }
    al.remove(1);
        for(int i = 0; i < al.size(); i++){
         str[i] = (String) al.get(i);
         System.out.println(str[i]);
        }
      

  2.   

    public static void main(String[] as) {
        String[] a = {"1","2","3","4","5"};
        ArrayList array = new ArrayList();
        for(int i = 0; i < a.length;i++){
          array.add(a[i]);
        }
        //假设你要删掉第三个
        array.remove(2);
        Object[] obj = array.toArray();
        a = new String[obj.length];
        for(int i = 0; i < obj.length;i++){
          a[i] = (String)obj[i];
          System.err.println("" + a[i]);
        }
     }
    我写着玩的,别当真。
      

  3.   

    for (int i = index; i < str.length - 1; i++)
                {
                    if (str[ i + 1 ] != null)
                    {
                        str[ i ] = str[ i + 1 ];
                        str[ i + 1 ] = null;
                    }
                    else
                    {
                        break;
                    }
                }
      

  4.   

    for(int j=i; j< str.length-1; j++)
      str[j]= str[j+1];
    这个可以实现,只是最后一个被保留了(数组的长度没变而以)
    str[j]的值已经变为str[j+1];可以在加一个循环新生成一个数组把length变为str.length-1,取str的前str.length-1个值
    最后附回去给str也可以用以下数组实现:
    Vector vv = new Vector();
    for(int k=0; k< 5; k++) {
    vv.add("0" + k);
    }
    for(int k=2; k< vv.size() - 1; k++) {
    vv.setElementAt(vv.get(k+1),k);
    }
    for(int k=0; k< vv.size() - 1; k++) {
    System.out.println("123=" + vv.get( k ));
    }