C#从字符串结尾的位置开始返回子字符串

时间:2014-10-18 09:00:08

标签: c# for-loop substring indexof

我正在尝试根据用户输入将字符串修剪为多个子字符串。 例如Console ARG1 = 'DATABASE' ARG2 = '3,2,3' 该方法将DATABASE转换为newList(DAT,AB,ASE)

我目前正在处理的代码是

        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)的子字符串。正如我在标题中所说的那样。

有人能指出我这样做的方式吗? 提前谢谢。

2 个答案:

答案 0 :(得分: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 :(得分:1)

试试这样。

添加新变量上一个。它有子字符串的起始索引

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