>source

아래의 Java code는 Java txt 파일 읽기를 수행합니다. 처음 두 필드는 "prezzo" 필드를 읽으려고 할 때 올바르게 읽히므로 다음 오류가 발생합니다. 문제는 다음과 같이 문자열에 있습니다. 이걸 해결하려면? 파일 링크도 첨부합니다

오류:

java.lang.StringIndexOutOfBoundsException: begin 98, end 11, length 233
        at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3751)
        at java.base/java.lang.String.substring(String.java:1907)
        at com.reportserver.report.utils.Support.substring(Support.java:68)

자바 스프링 부트 code:

File file= new File(filename);
try (BufferedReader br= new BufferedReader(new FileReader(file))) {
    String line=br.readLine();
    while (line != null) {
        String SiglaMarchio=line.substring(0,3);
        String CodiceProdotto=line.substring(4,17);
        //String ean=line.substring(21,14);
        //String descrizione= line.substring(32,75);
        String prezzo=line.substring(98,11); //68 line with error
        System.out.println("prezzo: " + prezzo);
        line=br.readLine();
    }
} catch (Exception e) {
    System.out.println("error reading file txt: "+e);
    e.printStackTrace();
}

11은 끝 인덱스가 beginIndex보다 커야 합니다.

Jens2022-01-26 09:41:14

11은 98보다 작습니다. 부분 문자열에 대한 문서를 읽었습니까?

f1sh2022-01-26 09:41:26

나는 당신이 C#에서 온 것 같습니다. 여기서 부분 문자열은 (독점적인) 끝 인덱스 대신 길이를 취합니다.

Mark Rotteveel2022-01-26 09:46:14

@MarkRotteveel 네 남자

riki2022-01-26 10:07:10
  • 답변 # 1

    11은 끝 인덱스이며 beginIndex(98)보다 커야 합니다. 로 변경:

    String prezzo=line.substring(98,109); //68 line with error
    

  • 이전 reactjs : 동기화 스크롤 반응. 창에 메인 스크롤이 있는 div 블록
  • 다음 Angular 지시문에서 CSS hover 속성에 CSS 변수를 사용하시겠습니까?