Jon*_*eet 20
像这样的东西:
private IList<string> SplitIntoChunks(string text, int chunkSize)
{
List<string> chunks = new List<string>();
int offset = 0;
while (offset < text.Length)
{
int size = Math.Min(chunkSize, text.Length - offset);
chunks.Add(text.Substring(offset, size));
offset += size;
}
return chunks;
}
Run Code Online (Sandbox Code Playgroud)
或者只是迭代:
private IEnumerable<string> SplitIntoChunks(string text, int chunkSize)
{
int offset = 0;
while (offset < text.Length)
{
int size = Math.Min(chunkSize, text.Length - offset);
yield return text.Substring(offset, size);
offset += size;
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,这会分成UTF-16代码单元的块,这与分割成Unicode代码点的块不完全相同,而这些代码点又可能与分割成字形块不同.