StringIndexOutOfBoundsException错误

debate 2007-05-21 07:52:33
出现一个错误,
源代码如下:
Connection cnn=null;
PreparedStatement ps=null;
ResultSet rs=null;
String strIn="xl-j2-232";
ps=cnn.prepareStatement("select * from classroom where code=?");
ps.setString(1,strIn);
rs=ps.executeQuery();
String used=null;
if(rs.next()){
used=rs.getString("isused");}
else System.out.println("rs null...");
for(int i=1;i<25;i++)
{
char s=skzc.charAt(i-1); //提取出skzc中第i位的字符
String s1=String.valueOf(s);
if(s1.equals("1"))
{
int j=5*7*(i-1)+5*(skxq-1)+(skjc-1);
StringBuffer sbuf1=new StringBuffer(used);
sbuf1.setCharAt(j,'1');
used=sbuf1.toString();
}
}
系统报错:
String index out of range: 702
java.lang.StringIndexOutOfBoundsException: String index out of range: 702
at java.lang.StringBuffer.setCharAt(Unknown Source)
at beanpack.table_deal.dataInsert(table_deal.java:106)
at beanpack.table_deal.buildClassroom(table_deal.java:55)
at beanpack.table_deal.main(table_deal.java:140)
我在数据表中定义的字段isused为nvarchar,长度为8000,其中放入的数据也只有700的长度而已,那怎么会出现字符串超出范围的错误呢???
请高手指教!不胜感激!
...全文
1881 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
debate 2007-05-25
  • 打赏
  • 举报
回复
我的used是从数据库中一个字段得到的字符串,长度为700,
应该是存放着数据的,不会为空的呀!
即:
......
String used=null;
if(rs.next()){
used=rs.getString("isused");}
StringBuffer sbuf1=new StringBuffer(used);
将它转化为StringBuffer 型,
sbuf1.setCharAt(j,'1')
对sbuf1的某一位进行处理,这应该是可以的呀!
kaukiyou 2007-05-23
  • 打赏
  • 举报
回复
StringBuffer不同于String
daniel_kaka 2007-05-22
  • 打赏
  • 举报
回复
//创建一个初始长度是used的StringBuffer,但他并没实际内容

应该是初始容量,不是初始长度~~~
daniel_kaka 2007-05-22
  • 打赏
  • 举报
回复
//创建一个初始长度是used的StringBuffer,但他并没实际内容
//此时sbuf1.lenght()=0
StringBuffer sbuf1=new StringBuffer(used);
//此时你在位置j放入字符1,肯定会出现StringIndexOutOfBoundsException错误
sbuf1.setCharAt(j,'1');

sbuf1.setCharAt(int pos,char c)的使用条件是pos<sbuf1.lenght()~~!!!!
javaboy2006 2007-05-22
  • 打赏
  • 举报
回复
lz检查一下:sbuf1.setCharAt(j,'1');
debate 2007-05-22
  • 打赏
  • 举报
回复
不会啊,我定义的字符串skzc长度为24,
char s=skzc.charAt(i-1); 即提取出skzc中第i位的字符
并没有超出数组的范围,为什么会报错??
fisheer 2007-05-21
  • 打赏
  • 举报
回复
数组越界了!
char s=skzc.charAt(i-1); //??可能

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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