当我有一个字符串,我想从某个Index到某个Index切割成一个新的字符串,我应该使用哪个函数?
如果字符串是:
ABCDEFG
这意味着当指定的两个索引为 1 和 3 时检索 BCD。
最佳答案
如果 endIndex
指向您希望包含在提取的子字符串中的最后一个字符:
int length = endIndex - startIndex + 1;
string extracted = s.Substring(startIndex, length);
如果 endIndex
指向所需子字符串之后的第一个字符(即剩余文本的开头):
int length = endIndex - startIndex;
string extracted = s.Substring(startIndex, length);
参见 String.Substring Method (Int32, Int32)有关 Microsoft Docs 的官方说明.
自 C# 8.0 起,仅在 .NET Core 和 .NET 5+ 中,您可以使用 Indices and ranges
string extracted = s[startIndex..endIndex];
排除了 endIndex 的位置。这对应于我使用 Substring
的第二个示例,其中 endIndex
指向所需子字符串之后的第一个字符(即剩余文本的开头)。
如果 endIndex
旨在指向您想要包含的最后一个字符,只需将一个添加到 endIndex
:
string extracted = s[startIndex..(endIndex + 1)];
关于c# - 剪切具有已知开始和结束索引的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9468950/