假如char[] common;一个已知数组 x;
common=x;我是要传一个固定的数组给另个数组common,common是实现在X基础上在多处把一个特定的字符替换成其他新的字符,新字符个数不一定等于被替换字符的个数.我自己写了一个方法不过好象很多错误啊,那个方法目的是为了把换行符替换成<br>,把<替换成&lt;,把>替换成&gt;,把单引号,双引号,反斜杠分别实现自动转义.
public class shiarray{
private char[] common,char[] newcommon;
private int i,n,k;
public shiarray(){}
public void setcommon(char[] x) {
common=x;
n=common.length;
for(i=0,k=0;i<n;i++){
switch(common[i]){

case char(10):
 
 newcommon[k]='<';
 newcommon[k+1]='b';
 newcommon[k+2]='r';
 newcommon[k+3]='>';
 k=k+3;break;
case '<':
 newcommon[k]='&';
 newcommon[k+1]='l';
 newcommon[k+2]='t';
 newcommon[k+3]=';';       
 k=k+3;break;
case '>' :
 newcommon[k]='&';
 newcommon[k+1]='g';
 newcommon[k+2]='t';
 newcommon[k+3]=';';       
 k=k+3;break; 
case char(96) :
 newcommon[k]='\';
 newcommon[k+1]=96;        
 k=k+1;break;
case char(34) :
 newcommon[k]='\';
 newcommon[k+1]=34;       
 k=k+1;break; 
case char(92) :
 newcommon[k]=92;
 newcommon[k+1]=92;       
 k=k+1;break; 
default :newcommom[k]=common[i]; 
     }
 k++;
}
}
}

解决方案 »

  1.   

    用ArrayList不就 实现动态数组功能了马
      

  2.   

    只能先知道确定的数组大小,哪怕是变量
    不然的话就用Collection或者Map系列
      

  3.   

    用ArrayList是最方便的,如果你确实想自已实现,可以考虑用System.arraycopy这个方法,先新建一个改变了元素个数的数组,然后把原来的数据复制到这里面,再将新元素赋值即可
    static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
      src:源数组
      srcPos:源数组拷贝的元素的起始索引
      dest:目标数组,必须有足够的空间来容纳新元素,否则抛出异常
      destPos:目标数组的起始索引
      length:要拷贝的元素个数
      

  4.   

    "用ArrayList最好,而且很好实现"
    你举个实际的例子吗?
      

  5.   

    你看看JDK API,ArrayList的add,remove,toString啥啥啥地基本就能搞定了
      

  6.   

    你看看JDK API,ArrayList的add,get,remove,toString啥啥啥地基本就能搞定了
      

  7.   

    你看看JDK API,ArrayList的add,get,remove,toString啥啥啥地基本就能搞定了
      

  8.   

    让我来试试
    import java.util.Collection;
    import java.util.TreeSet;
    import java.util.Iterator;public class ChangeArg{
        public Collection Change(Char[] x){
          Collection tset = new TreeSet();
          for(int i=0;i<x.length()-1;i++){
             Char temp = x[i];
             switch(temp){
               case '<': tset.add("&lt;");break; //替换中...
               case '>': tset.add("&gt;");break;
               ... //省略(懒得写了)
               default : tset.add("" + x[i]);
             }
          Char[] result = new Char[x.length()-1];
          Iterator itor = tset.getIterator();
          while(itor.hasNext()){
             result += itor.Next();
          }
          return result;
        }
    }
    我身边没有IDE,随手写的,如果实现不了的话自己去看看J2EE方面的书
    或是多发贴等高手来帮你
      

  9.   

    实现动态数组最好的方法就是ArrayList
    初学者通常都把ArrayList看成动态数组
      

  10.   

    String 类中的方法那么多不能解决你的问题吗/