java.lang.StringIndexOutOfBoundsException: String index out of range: -1

usaspy 2004-10-09 03:30:02
opendb.OpenDb workM = new opendb.OpenDb();

sql = "SELECT * FROM 论坛栏目";
ResultSet rs_Foruminfo = workM.executeQuery(sql);
while(rs_Foruminfo.next()){

...

}

在执行上面的语句时出错:java.lang.StringIndexOutOfBoundsException: String index out of range: -1

OpenDb这个class本身是没有问题的

...全文
18308 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
yekai012 2004-11-27
  • 打赏
  • 举报
回复
你用的是什么数据库?我有一次用的是mysql,错误和你的相反,我的是“index out of 26”,我改成了sql server就没这事了。我想可能就是数据库的字符集的问题。
magicyang1982 2004-10-11
  • 打赏
  • 举报
回复
opendb.OpenDb的executeQuery()方法的实现会不会有错误阿!
看错误你
try{
... ...
}catch(Exception e){
e.printStackTrace();
}
这样可以看见错误的抛出点...
你把ResultSet rs_boardinfo = workM.executeQuery(sql);
改成:
ResultSet rs_boardinfo = null;
try{
rs_boardinfo = workM.executeQuery(sql);
}catch(Exception e){
e.printStackTrace();
}
这样试试看,能不能捕获到真正的错误源!
peterguan 2004-10-11
  • 打赏
  • 举报
回复
所以问你数据库的字符集
usaspy 2004-10-10
  • 打赏
  • 举报
回复
ResultSet rs_boardinfo = workM.executeQuery(sql); 的确是这句话有问题,因为我换成另外一条sql语句查别的表就没有问题,好奇怪
usaspy 2004-10-10
  • 打赏
  • 举报
回复
论坛id bigint 8 0
论坛名称 varchar 50 1
创建时间 datetime 8 1
版主姓名 char 10 1
版主密码 char 10 1
贴子数量 bigint 8 1
主题数量 bigint 8 1
最后发表人 char 50 1
最后发表时间 datetime 8 1


1 维权论坛 2004-10-09 14:19:41.860 张湖 122 12 233 dd
2004-10-09 14:19:41.860
2 时事纵横 2004-10-09 14:19:45.733 罗胜 34 23 23  dd 2004-10-09 14:19:45.733
usaspy 2004-10-10
  • 打赏
  • 举报
回复
wo 发现只要加上ResultSet rs_boardinfo = workM.executeQuery(sql);这段
就报java.lang.StringIndexOutOfBoundsException: String index out of range: -1 错误

如果把ResultSet rs_boardinfo = workM.executeQuery(sql);去掉就没有问题了,是不是数据库中的数据在放到ResultSet rs_boardinfo 中的时候有什么限制。

楼上所说的检查substring()地方我试过了,把substring全都去掉,还是报同样的错.

micker 2004-10-10
  • 打赏
  • 举报
回复
你检查一下所有有substring()的地方。应该就是只有这些地方出错了!
micker 2004-10-10
  • 打赏
  • 举报
回复
字符串数组下标越界了,你自己检查一下。
peterguan 2004-10-10
  • 打赏
  • 举报
回复
你数据库的字符集是什么?
usaspy 2004-10-10
  • 打赏
  • 举报
回复
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page language="java" import="java.sql.*" %>
<%@ include file = "Translate/codechange.jsp" %>

<html><script language="JavaScript"></script></html>

<html>
<head>
<%!
String sql = null;
%>
<title>福建旅游论坛</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<table cellspacing="0" cellpadding="0" border="0" width="99%" align="center">
<tr><td bgcolor="#009ACE"> <tr>
<td width="734" class="tablerow" colspan="7" bgcolor="#FFFFFF" height="16">
<table border="0" cellspacing="0" width="100%" cellpadding="0">
<tr>
<td width="12%"><font color="#333399"><b><img src="image/gb.gif" width="21" height="14">论坛公告:</b></font></td>
<td width="88%"> <marquee width="648" height="12" direction="left">
</marquee> </td>
</tr>
</table>
</td>
</tr>
<tr bgcolor="#9CCFFF">
<td width="15" height="14"> </td>
<td width="247" height="14" bgcolor="#9CCFFF">论坛列表</td>
<td width="28" align="center" height="14">新窗</td>
<td width="58" align="center" height="14">主题数量</td>
<td width="57" align="center" height="14">贴子数量 </td>
<td width="170" align="center" height="14">最后回复</td>
<td width="63" align="center" height="14">版主</td>
</tr>
<%/////////////////////////////////////////////////////////////////////%>
<%
opendb.OpenDb workM = new opendb.OpenDb();
sql="SELECT * FROM 论坛栏目";

ResultSet rs_boardinfo = workM.executeQuery(sql);
while (rs_boardinfo.next())
{
String Time_Str=rs_boardinfo.getString("最后发表时间");
String Man_Str=rs_boardinfo.getString("最后发表人");
String Forum_id=rs_boardinfo.getString("论坛id");
String Forum_Mastor=rs_boardinfo.getString("版主姓名");

if (Man_Str==null)
Man_Str="无";
else
Man_Str="<a href='member.jsp?member="+Man_Str+"'>"+Man_Str+"</a>";


if ((Forum_Mastor==null)||(Forum_Mastor.equals("")))
Forum_Mastor="招骋中...";
else
Forum_Mastor="<a href=member.jsp?member="+Forum_Mastor+">"+Forum_Mastor+"</a>";
%>
<tr bgcolor="#F7FBFF">
<td align="center" height="26" width="15"><img src="image/folder.gif" width="13" height="16"></td>
<td height="26" width="247" bgcolor="#F7FBFF"><a href="board.jsp?fid=<%=Forum_id%>"> <%=rs_boardinfo.getString("论坛名称")%> </a>
<br />
</td>
<td align="center" height="26" width="28"> <a href="board.jsp?fid=<%=Forum_id%>" target="_blank"><img border="0" src="image/newwin.gif" width="14" height="11"></a></td>
<td align="center" height="26" width="58"><%=rs_boardinfo.getString("主题数量")%></td>
<td align="center" height="26" width="57"><%=rs_boardinfo.getString("贴子数量")%></td>
<td height="26" width="170">时间:<%=Time_Str.substring(0,16)%><br>
作者:<%=Man_Str%></a></td>
<td align="center" height="26" width="63"><%=Forum_Mastor%></td>
</tr>
<%
}
%>
usaspy 2004-10-09
  • 打赏
  • 举报
回复
我已经把while{}循环中的代码全部删掉了,让while空循环,可还是报错
javaororacle 2004-10-09
  • 打赏
  • 举报
回复
多贴点代码才知道!这几句都是不出错的代码,贴出来没用!
usaspy 2004-10-09
  • 打赏
  • 举报
回复
java.lang.StringIndexOutOfBoundsException: String index out of range: -1

通常什么时候会报上面这个错.!
黑马 2004-10-09
  • 打赏
  • 举报
回复
是不是用substring了?

里面的index值超出范围?
galewithwing 2004-10-09
  • 打赏
  • 举报
回复
检查你的循环体内的代码,
可能里面的代码有问题
xiangbo520 2004-10-09
  • 打赏
  • 举报
回复
上面的代码是看不出错误的,看错误代码好象是提示字符串数组下标越界
ladofwind 2004-10-09
  • 打赏
  • 举报
回复
这些看不到错

81,092

社区成员

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

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