我正在尝试根据用户输入将字符串修剪为多个子字符串。
例如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)的子字符串。正如我在标题中所说的那样。
有人能指出我这样做的方式吗? 提前谢谢。
答案 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);
}