C#返回从超过字符串末尾的位置开始的子字符串
本文关键字:字符串 返回 位置 开始 | 更新日期: 2023-09-27 18:27:02
我正试图根据用户输入将一个字符串修剪成多个子字符串。例如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)的子字符串。正如我在标题中所说。
有人能给我指一下做这件事的方法吗?提前谢谢。
您需要跟踪的位置
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);
}
这样试试。
添加上一个新变量。它具有子字符串的起始索引
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);
}