String.Substring 移动字符串帧 k 个字符位置时的行为

String.Substring behavior when moving a string frame k char places

在 For 循环中,我不理解 string.Substring(i,j)

的以下行为

有代码

String line = "TTACCTTAAC";
int k = 3; //this is variable but for simplicity is 3
String _pattern = "";
for (int i = 0; i <= line.Length - k; i++) {
    _pattern = line.Substring(i, i + k );
    //do something...
}

我希望循环遍历字符串行 (TACCTTAAC) (from 0 to 10-3 = 7)like:

TTA
ACC
CCT
CTT
TTA
TAA
AAC

不过我得到

TTA
ACCT
etc...

我错过了什么?

Substring 的第二个参数是 length,而不是 end,所以你应该传递 k 而不是计算:

String line = "TTACCTTAAC";
int k = 3; //this is variable but for simplicity is 3
String _pattern = "";
for (int i = 0; i <= line.Length - k; i++) {
    _pattern = line.Substring(i, k);
    //do something...
}

c#中的substring函数用作string.Substring(int startindex, int Length)

所以你应该使用

_pattern = line.Substring(i, k);