2014-06-30 2 views
0

나는 내가 가지고있는 데이터의 큰 문자열에서 문자열을 얻기 위해 노력하고있어,하지만 난이 줄을 사용하는 경우 :하위 문자열 색인 <에서 String.length

string output = datastring.substring(0, datastring.Length-1) 

을가 하더군요 색인이 범위를 벗어 났음을 나타냅니다 ("색인 및 길이는 문자열 내의 위치를 ​​참조해야합니다").

if (index + 10 < datastring.Length) 
{ 
     if (datastring.substring(index, index+10) == "name") 
     { 
      outputstring += " found instance of 'name'"; 

     }  

} 

그것은 인덱스가 밖으로 말한다 :

이것은

while (index < datastring.Length) 
     { 
      outputstring += datastring[index]; 
      index++; 
     } 

그러나 datastring과 같은 일로 인쇄 outputstring 있도록, 잘 일이 나에게 오류를 제공합니다 경계. 인덱스 + 10이 범위 내에 있음을 이미 확인한 경우 두 번째 'if'문에서 인덱스가 범위를 벗어날 수 있습니까?

답변

0

.substring(offset, length)이 아니라 .substring(startOffset, endOffset)입니다.

대신

datastring.substring(index, index+10) 

사용

datastring.substring(index, 10) 
관련 문제