Java out of range 问题

qq_33513022 2016-09-30 04:23:17
import java.util.*;
import java.io.*;

public class test {
public static void main(String args[]) {
String M="Calif";

Random rng=new Random();

String K = "";
StringBuffer my = new StringBuffer(M);
StringBuffer my2 = new StringBuffer(K);
System.out.println("length of this String is "+my.length());
int Length=my.length();
for(int r=0;r<Length;r++){
int Length2=my.length();
int b=rng.nextInt(Length2);
my2.append(my.charAt(b-1));
my2.deleteCharAt(b-1);
}
}
}

...全文
497 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mu_mu_zi 2016-09-30
  • 打赏
  • 举报
回复
数组越界了。
nikyotensai 2016-09-30
  • 打赏
  • 举报
回复
my2的删除有问题,看不懂你到底要删什么?单看代码是第b个,很明显b>1就没了,而且加一个减一个不就还原,最后结果和没处理有区别
I,Frankenstein 2016-09-30
  • 打赏
  • 举报
回复
是啊,你这个代码有问题的。你取出来的随机数是0-5,当等于0的时候就会报错,所以运气好,有可能不报错
qq_25539377 2016-09-30
  • 打赏
  • 举报
回复
for(int r=0;r<Length;r++){ int Length2=my.length(); int b=rng.nextInt(Length2); my2.append(my.charAt(b-1)); my2.deleteCharAt(b-1); } 这个意思是循环随机产生 Length个 [0,Length)的整数,如果产生的是0 my.charAt(0-1) 不就有问题了?
  • 打赏
  • 举报
回复
比如第一次运行时b=4,my2.deleteCharAt(b-1);执行这步时,my2的长度为1,不能删除第三个位置
qq_33513022 2016-09-30
  • 打赏
  • 举报
回复
为什么会说outofrange啊

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧