首先这个问题是属于数组越界的问题
举个例子
有txt文件,要显示里面分隔符----后面的内容
其中java的核心代码为
FileReader fileReader=new FileReader(file);
reader=new BufferedReader(fileReader); //缓存类BufferedReader类构造方法
String line;
int i=1;
while ((line=reader.readLine())!=null){
String[] strs=line.split("----");
System.out.println(strs[1]);
}
运行提示出现错误
原因
用split去除分隔符过后,会将分隔符两侧的字符串放在字符串数组中,而第一行分隔符----后面无内容。导致第一行分割后没有strs[1],即数组越界。
(使用split方法时,分隔符侧边无内容时,不会产生相应的数组空间)
String[] strs=line.split("----");
对于这段代码,我的改法是加入if判断数组的长度,如果数组长度大于等于2时,再进行下一步的操作。
下面的改后的核心代码。
FileReader fileReader=new FileReader(file);
reader=new BufferedReader(fileReader); //缓存类BufferedReader类构造方法
String line;
int i=1;
int b=0;
while ((line=reader.readLine())!=null){
String[] strs=line.split("----");
b= strs.length;
if(b>=2) {
System.out.println(strs[1]);
}
对于其他情况下产生数组越界的情况,可以根据实际情况进行修改。