1

I want to read a text from a file. Every line should be split at 180 characters and then each line should be added to a table, but I get the error message "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;
         }
    }
}
4

3 に答える 3

0

あなたの部分文字列はこのように機能します、

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

Startindexはサブストリングのendindex以下である必要があるため、終了を増やす必要があります。そうしないと、エラーが何度も発生します。

于 2012-12-10T08:04:18.033 に答える
0

これを試して:

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

文字列から180文字を取得しようとしましたがline、ある時点で残りの文字数は180文字未満になります。

于 2012-12-10T08:04:23.953 に答える
0

の行に問題があります

line2 = line.substring(chaCount,180);

 System.out.println(line2);

 chaCount = chaCount +180; 

最初は、システムは 0 から 180 までの出力を取得します。しかし、次にそれに 180 を追加すると、出力は空になります。しかし、それを 3 回試行すると、エラーが発生します。そのため、chaCount を追加したり、別の変数を使用してその値を保持したりしないでください。

于 2012-12-10T08:21:35.753 に答える