2017-10-04 1 views
-1

저는 학교에서 쓰고있는 프로그램에서이 오류를 수정하는 데 어려움을 겪고 있습니다. 나는 코드를 실행 한 후에받는 오류와 함께 아래의 자바 스 니펫을 붙여 넣었다.이 "문자열 색인 범위 초과 오류"는 어떻게 해결할 수 있습니까?


자바 스 니펫 :

public static void main(String[] args) throws IOException { 
    String largeSpace = " "; 
    String smallSpace = " "; 
    //Printing header row 
    System.out.print("Title" + largeSpace.substring("Title".length())); 
    System.out.print("ISBN" + smallSpace.substring("ISBN".length())); 
    System.out.print("Course" + smallSpace.substring("Course".length())); 
    System.out.print("Enrollment" + 
    smallSpace.substring("Enrollment".length())); 
    System.out.print("To Order"); 
    System.out.println(); 
    BufferedReader bufferedReader = null; 

오류가 나는 나타날 수

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String 
index out of range: -4 
    at java.lang.String.substring(Unknown Source) 
    at A5WilliamCarter.main(A5WilliamCarter.java:102) 
+0

'length()'는 (마지막 색인 + 1)입니다. –

답변

0

때문에 "제목".length()는 5이며, largeSpace는 길이 1을 가지고 있으며, 5가 1보다 큰 경우, StringIndexOutOfBoundsException가 슬로우됩니다. 너는 4 글자 밖에 없다.

난 당신이 무슨 일을하는지 전혀 모르겠어요,하지만 난 가능한 수정은 다음이 될 것이라고 생각 : 인덱스부터 시작하여 그것의 문자열을 얻으려고 노력 후, 당신은 String largeSpace = " ";를 할당하는

System.out.print("Title" + largeSpace*("Title".length())); 
0

과 5, 4 문자가 부족합니다.

0

당신은

largeSpace.substring("Title".length()) 
smallSpace.substring("ISBN".length()) 

largeSpace 및 smallSpace는 각각 길이 1을 가지고 있기 때문입니다 함께하고있는 일을 할 수는 없지만 문자 4에서 시작하는 문자열을 얻으려고 노력하고 5.이 인상됩니다 오류. 나는 당신이이 코드로 무엇을 하려는지 확신 할 수 없기 때문에 픽스를 제공 할 수 없다.

관련 문제