我想从文件中读取文字。每行应拆分为180个字符,然后每行应添加到表中,但我收到错误消息“String index out of range -180”。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadAndWrite {
public static void main(String[] args) throws IOException {
BufferedReader read = new BufferedReader (new FileReader("xyz.txt"));
String line = read.readLine();
int len = line.length();
System.out.println(len);
int chaCount = 0;
while (chaCount < len) {
String line2 = line.substring(chaCount, 180);
System.out.println(line2);
chaCount += 180;
}
}
}
答案 0 :(得分:0)
您的Substring将像这样工作,
first loop:
Substring(0,180);
second loop;
Substring(180,180);
//Error incoming
third loop
Substring(360,180);
你需要增加你的结尾,否则你会再次发现错误,因为Startindex必须低于或等于子串的结束指数
答案 1 :(得分:0)
试试这个:
line2 = line.substring(chaCount, 180<len-chaCount? 180:len-chaCount);
您尝试从line
字符串中获取180个字符,在某些时候字符数将少于180个字符。
答案 2 :(得分:0)
你有
的问题line2 = line.substring(chaCount,180);
System.out.println(line2);
chaCount = chaCount +180;
第一次,系统将输出从0到180.但是下次你用它添加180并且输出为空。但是当它第三次尝试发生错误时。所以不要添加chaCount或使用另一个变量来保持该值。