2014-10-18 1 views
0

사용자 입력에 따라 문자열을 여러 부분 문자열로 잘라내려고합니다. 예를 들어 Console ARG1 = 'DATABASE' ARG2 = '3,2,3'에있어서, 내가 현재 일하고 newList (DAT, AB, ASE)C# 문자열의 끝에서부터 시작하여 부분 문자열을 반환합니다.

코드로 DATABASE를 번역

 string[] sizeSplit = ARG3.Split(','); 
     for (int i = 0; i < sizeSplit.Length; i++) 
     { 
      string eachNumber = sizeSplit[i]; 
      int j = Int32.Parse(eachNumber); 


      string splitString = pattern.Substring(0,j); 

      seperatedWord.Add(splitString); 
     } 

이다 그러나 것 같은 첫 번째 문자열이 유일한 작품, 두 번째 및 그 이후는 (pastPosition, j)의 인덱스가있는 부분 문자열이어야합니다. 내가 제목에서 말했듯이.

누구나 나를이 방법을 가르쳐 줄래? 미리 감사드립니다.

답변

3

당신은

int index = 0; 
for (int i = 0; i < sizeSplit.Length; i++) 
{ 
    string eachNumber = sizeSplit[i]; 
    int j = Int32.Parse(eachNumber);   
    string splitString = pattern.Substring(index,j); 
    index += j; 
    seperatedWord.Add(splitString); 
} 
1

이 같은 시도 위치를 추적 유지해야합니다.

ADD new 변수 이전. 하위 문자열 시작 인덱스가

string ARG1 = "DATABASE"; string ARG2 = "3,2,3"; 
int previous = 0; 
string[] sizeSplit = ARG2.Split(','); 
for (int i = 0; i < sizeSplit.Length; i++) 
{ 
    string eachNumber = sizeSplit[i]; 
    int j = Int32.Parse(eachNumber); 

    string splitString = ARG1.Substring(previous, j); 
    previous +=j; 
    seperatedWord.Add(splitString); 
}