部分程序:
public void DealLrTable()//点击输入按钮时候,执行的函数
{
int j = 0;
int k = j;
LrTable Lrtable = new LrTable();
String[] S = ta1.getText().split("\n");//从Ta1中读如,共13行
String[] S1 = new String[13];//已经确定了的个数
for(int i=0;i<12+1;i++)
{
int leng = S[i].length();
S1[i] = S[i].substring(0,leng-1);//这里就是系统提示的错误所在
}
for(int i=0;i<12+1;i++)//12+1中的12是状态数目,以后可以修改
{
for(;j<=8+1;j++)
{
LrElem[i][k] = Lrtable;
LrElem[i][k].elem = S1[i].substring(j*3,j*3+3);
}
k++;
}
}Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at Lr1.DealLrTable(Lr1.java:126)
at Lr1.actionPerformed(Lr1.java:242)这里,我觉得substring中的长度都是准确的嘛,,,
但是为什么会有越界的错误不?
public void DealLrTable()//点击输入按钮时候,执行的函数
{
int j = 0;
int k = j;
LrTable Lrtable = new LrTable();
String[] S = ta1.getText().split("\n");//从Ta1中读如,共13行
String[] S1 = new String[13];//已经确定了的个数
for(int i=0;i<12+1;i++)
{
int leng = S[i].length();
S1[i] = S[i].substring(0,leng-1);//这里就是系统提示的错误所在
}
for(int i=0;i<12+1;i++)//12+1中的12是状态数目,以后可以修改
{
for(;j<=8+1;j++)
{
LrElem[i][k] = Lrtable;
LrElem[i][k].elem = S1[i].substring(j*3,j*3+3);
}
k++;
}
}Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at Lr1.DealLrTable(Lr1.java:126)
at Lr1.actionPerformed(Lr1.java:242)这里,我觉得substring中的长度都是准确的嘛,,,
但是为什么会有越界的错误不?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货