1

我想从文件中读取文本。每行应拆分为 180 个字符,然后应将每一行添加到表中,但我收到错误消息“字符串索引超出范围 -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;
         }
    }
}
4

3 回答 3

0

你的 Substring 会像这样工作,

first loop: 
Substring(0,180);
second loop;
Substring(180,180);
//Error incoming
third loop
Substring(360,180);

你需要增加你的结尾,否则你会反复收到错误,因为 Startindex 必须低于或等于 Substring 的 endindex

于 2012-12-10T08:04:18.033 回答
0

尝试这个:

line2 = line.substring(chaCount, 180<len-chaCount? 180:len-chaCount);

您尝试从line字符串中获取 180 个字符,但在某些时候剩余的字符数会少于 180 个。

于 2012-12-10T08:04:23.953 回答
0

你有问题

line2 = line.substring(chaCount,180);

 System.out.println(line2);

 chaCount = chaCount +180; 

第一次,系统得到从 0 到 180 的输出。但是下一次你加上 180 时,输出是空的。但是当它第三次尝试时,就会发生错误。所以不要添加 chaCount 或使用另一个变量来保持该值。

于 2012-12-10T08:21:35.753 回答