2014-10-18 106 views
0

我想根據用戶輸入將字符串修剪成多個子字符串。 例如,在Console ARG1 = 'DATABASE' ARG2 = '3,2,3' 的方法將數據庫轉換爲newList(DAT,AB,ASE)C#從字符串末尾的位置開始返回子字符串

的代碼,我目前的工作是

 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 Variable Previous。它有子串的起始索引

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); 
}