2013-10-03 5 views
0

"내 코드에서이 오류가 계속 발생합니다"스레드의 예외 java.lang.stringindexoutofboundsexception 문자열 인덱스가 범위를 벗어남 "문제가 무엇인지 파악하지 못합니까?문자열 인덱스가 범위를 벗어 났습니까?

import java.util.Scanner; 
public class Compress { 

public static void main(String[] args) 
{ 
    Scanner scan = new Scanner(System.in); 
    System.out.println("Enter a string: "); 
    String compress = scan.nextLine(); 
    int count = 0; 

    for (count = 0; count <= compress.length(); count++) 
    { 
     while(count +1 < compress.length() && compress.charAt(count) == compress.charAt(count  + 1)) 
    { 
      count = count + 1; 
     } 
     System.out.print(count + "" + compress.charAt(count)); 

    }  
} 
+1

의 자바 = 자바 스크립트를!. –

답변

5

문자열 인덱스는 0에서 length - 1에 실행, 그래서 당신은 문자열 compress의 끝을 실행하고 있습니다. 해당 인덱스를 사용하기 전에 countcompress.length()에 도달하면,

for (count = 0; count < compress.length(); count++) 

이 방법에

for (count = 0; count <= compress.length(); count++) 

에서 for 루프 조건을 변경 한 후 for 루프가 중지됩니다.

1

인덱스 범위는 0 to length-1입니다. 사용해보십시오 : -

for (count = 0; count < compress.length(); count++) 

대신

for (count = 0; count <= compress.length(); count++) 
관련 문제