char a[]={'a','b','c','d','e'};
String s=new String(a,2,4);System.out.println(s);
我想问一问为什么我输出s时会提示越界。但如果把2改为1又或者扩大数组a又没问题。这是为什么

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【flytigerme】截止到2008-07-21 12:07:35的历史汇总数据(不包括此帖):
    发帖的总数量:3                        发帖的总分数:10                       每贴平均分数:3                        
    回帖的总数量:2                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:3                        结贴的总分数:10                       
    无满意结贴数:2                        无满意结贴分:20                       
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:66.67 %               无满意结分率:200.00%                  
    敬礼!
      

  2.   

    这个方法的定义如下:
    java.lang.String.String(char[] value, int offset, int count)
    offset是从哪个字符开始(第一个字符为0),取count位。
    char a[]={'a','b','c','d','e'}; 
    String s=new String(a,2,4); 
    这段程序从c开始,取4位,可你的数组只有c,d,e三位,所以出界了。