Java charAt正在给我StringIndexOutOfBoundsException异常
我正在尝试使用CharAt来伪造csv文件。我正在尝试获取逗号的索引,以便找到每个数字的位置 每个字符串中有2个逗号,当我搜索字符时,我得到异常Java charAt正在给我StringIndexOutOfBoundsException异常,java,Java,我正在尝试使用CharAt来伪造csv文件。我正在尝试获取逗号的索引,以便找到每个数字的位置 每个字符串中有2个逗号,当我搜索字符时,我得到异常 while ((t= in.readLine()) != null) { // read iun line // extract data
while ((t= in.readLine()) != null)
{
// read iun line
// extract data
t="45446,45456456,464646";
// EXCEPTION GOES OFF HERE
p=t.charAt(',');
sTimeStamp=t.substring(0, p-1);
t=t.substring(p+1);
p=t.charAt(',');
sPoint=t.substring(0, p-1);
t=t.substring(p+1);
p=t.charAt(',');
sVol=t.substring(0, p-1);
// store data
}
LoadGraph(reply);
System.out.println("finish Read indata");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "nn";
}
为了确保字符串中确实有逗号,我硬编码了它。我还是有例外
while ((t= in.readLine()) != null)
{
// read iun line
// extract data
t="45446,45456456,464646";
// EXCEPTION GOES OFF HERE
p=t.charAt(',');
sTimeStamp=t.substring(0, p-1);
t=t.substring(p+1);
p=t.charAt(',');
sPoint=t.substring(0, p-1);
t=t.substring(p+1);
p=t.charAt(',');
sVol=t.substring(0, p-1);
// store data
}
LoadGraph(reply);
System.out.println("finish Read indata");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "nn";
}
这就是你的问题:
p=t.charAt(',')
“,”根据ASCII表相当于44
由于您的字符串少于44个字符,因此您会得到IndexOutOfBoundException。我认为使用t.indexOf而不是t.charAt',将按照您的方式工作。好的,但您的问题是什么?您认为charAtint做了什么,为什么这样认为?注意int!你试过调试你的代码吗?并请添加完整的stacktrace。可能与该方法采用错误的参数类型有关。我建议阅读indexOfRead上的Java文档来查找charAt。我误解了这个函数,以为输入是char to serach而不是索引