2012-12-10 2 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
당신의 하위 문자열은 다음과 같이 작동합니다

,

당신이 STARTINDEX이 있기 때문에받는 낮거나 동일하게, you'r 결말을 증가하거나하고 전년도에 대해 오류를 받아 봐 것입니다 필요
first loop: 
Substring(0,180); 
second loop; 
Substring(180,180); 
//Error incoming 
third loop 
Substring(360,180); 

하위 문자열

+0

tnx bro, rectified – user1890709

0

의 endIndex에이 시도 :

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

당신은 180 characte을 얻으려고 rs에서 line 문자열은 어떤 시점에서 180 문자 미만이 남을 것입니다. ;

0

당신은

의 라인

2 호선 = line.substring (chaCount, 180)에 문제가있다 처음

System.out.println(line2); 

chaCount = chaCount +180; 

, 시스템 (180)에 0의 출력을 얻는다 그러나 다음 번에 당신은 180를 추가하고 출력은 비어 있습니다. 그러나 세 번 째 시도 할 때 오류가 발생합니다. 그러니 chaCount를 추가하거나 다른 값을 유지하기 위해 하나의 변수를 사용하지 마십시오.