次のような文字列があるとします。
string str = "1111222233334444";
この文字列をある一定のサイズのチャンクに分割するにはどうすればよいでしょうか?
たとえば、これを 4 つのサイズに分割すると、次の文字列が返されます。
"1111"
"2222"
"3333"
"4444"
ベストアンサー1
static IEnumerable<string> Split(string str, int chunkSize)
{
return Enumerable.Range(0, str.Length / chunkSize)
.Select(i => str.Substring(i * chunkSize, chunkSize));
}
null
エッジケース (または空の入力文字列、chunkSize == 0
入力文字列の長さが で割り切れないなど)を適切に処理するには、追加のコードが必要な場合があることに注意してくださいchunkSize
。元の質問では、これらのエッジケースの要件は指定されておらず、実際には要件が異なる可能性があるため、この回答の範囲外となります。