2012-12-10 40 views
0

我想從文件中讀取文本。每行應分爲180個字符,然後每行應添加到表中,但我收到錯誤消息「字符串索引超出範圍-180」。帶有while循環的子串

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; 
     } 
    } 
} 
+1

你是什麼意思'應該除以180個字符? –

+0

我想「分裂」。 –

回答

0

你的子串會像這樣,

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

你需要增加找你的結局,否則您將recive錯誤打擊和agains,因爲STARTINDEX必須低於或等於子串

+0

tnx兄弟,糾正 – user1890709

0

的endIndex的試試這個:

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

你嘗試獲得180 characte來自line的字符串,在某些時候,字符串的剩餘字符數不會超過180個。

0

你具有在

LINE2 = line.substring(chaCount,180)中的問題;

System.out.println(line2); 

chaCount = chaCount +180; 

首次,系統會從0輸出到180,但下一次要添加180與和輸出是空的。但是當它第三次嘗試發生錯誤時。所以不要添加chaCount或使用另一個變量來保持該值。