报错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));
}
} 展开
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));
}
} 展开
展开全部
你在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,停止执行!
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,停止执行!
展开全部
数组下标溢出
估计你输入参数个数不够!
估计你输入参数个数不够!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要获取的数据在数组中超出下标了,看下异常报的代码位置,分析下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String s0=args[0],s1=args[1],s2=args[2];
需要接收3个参数(以空格分隔),而你输入的参数少于三个
正确输入
C:\>java Test5 1234 567 23
需要接收3个参数(以空格分隔),而你输入的参数少于三个
正确输入
C:\>java Test5 1234 567 23
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询