报错java.lang.ArrayIndexOutOfBoundsException

JAVA书上的例子编译没有错,为什么运行出错啊publicclasstest5{publicstaticvoidmain(Stringargs[]){Strings0=a... JAVA书上的例子编译没有错,为什么运行出错啊

public class test5 {
public static void main(String args[]){
String s0=args[0],s1=args[1],s2=args[2];
StringBuffer sa=new StringBuffer();
StringBuffer sb=new StringBuffer(256);
StringBuffer sc=new StringBuffer(s2);
int i;

int s0len=s0.length(),s1len=s1.length(),s2len=s2.length();
System.out.println("sc内容为:+sc.toString");
System.out.println("sc的字符串长度为:"+sc.length());
System.out.println("sc的容量为;"+sc.capacity());
sc.ensureCapacity(48);
System.out.println("sc更改后的容量为:"+sc.capacity());
sa.append(s0);
System.out.println("sa内容为;"+sa.toString());
sb.append(s0+"&"+s1+"&"+s2);
System.out.println("sb内容为:"+sb.toString());
sb.delete(s0len+1,s0len+s1len+1);
System.out.println("删除操作后sb的内容为:"+sb.toString());
sb.insert(s0len+1,s1);
System.out.println("插入操作后sb的内容为:"+sb.toString());
i=sa.indexOf(s2);
if(i<0){
System.out.println("找不到"+s2+",停止执行!");
System.exit(1);
}
System.out.println("在sa的第"+i+"位置找到"+s2);
sa.replace(i,i+s2len,"live");
System.out.println("替换操作后sa的内容为:"+sa.toString());
sa=sa.reverse();
System.out.println("sa反转后的内容为:"+sa.toString());
s1=sb.substring(s0len+s1len+2,s0len+s1len+s2len+2);
System.out.println("s1的内容更新为:"+s1);
char[]a=new char[100];
sb.getChars(0,s0len,a,0);
System.out.println("a的内容为:"+String.valueOf(a));
}
}
展开
 我来答
bewich
2010-09-28 · TA获得超过199个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:98.1万
展开全部
你在Eclipse里面直接运行是不对的,
String s0=args[0],s1=args[1],s2=args[2];
这行代码要求程序运行带参数
http://zhidao.baidu.com/question/71460678.html?si=4
解决参考这里很简单
比如我加入的运行参数是“abc efg 111”
测试输出结果为:
sc内容为:+sc.toString
sc的字符串长度为:3
sc的容量为;19
sc更改后的容量为:48
sa内容为;abc
sb内容为:abc&efg&111
删除操作后sb的内容为:abc&&111
插入操作后sb的内容为:abc&efg&111
找不到111,停止执行!
xizissr
2010-09-28 · TA获得超过493个赞
知道小有建树答主
回答量:625
采纳率:50%
帮助的人:250万
展开全部
数组下标溢出
估计你输入参数个数不够!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
希语稚听
2010-09-28 · 超过13用户采纳过TA的回答
知道答主
回答量:98
采纳率:0%
帮助的人:0
展开全部
要获取的数据在数组中超出下标了,看下异常报的代码位置,分析下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mcltl
2010-09-28 · TA获得超过158个赞
知道小有建树答主
回答量:114
采纳率:0%
帮助的人:81.5万
展开全部
String s0=args[0],s1=args[1],s2=args[2];
需要接收3个参数(以空格分隔),而你输入的参数少于三个
正确输入
C:\>java Test5 1234 567 23
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式