長い文字列を分割するにはどうすればよいですか?
入力:
ABCDEFGHI
出力:
ABC, DEF, GHI
使用する
string str = "ABCDEFGHI";
List<string> lst = new List<string>();
string temp = "";
for(int i = 0; i < str.Length; i++)
{
temp = str[i].ToString();
if((i + 1) % 3 == 0)
{
lst.Add(temp);
temp = "";
}
}
string final_str = string.Join(", ", lst);
これが非常に長い文字列であると仮定すると、文字列ビルダーを使用して連結を行います。また、部分文字列を使用して、個別にグループ化された文字列を作成します。これにより、メモリを節約できます。
string longString = "ABCDEFGHIJK";
int groupingLength = 3;
var stringLength = longString.Length;
var startingLength = Math.Min(longString.Length, groupingLength);
var startingString = longString.Substring(0, startingLength);
var sb = new StringBuilder(startingString);
if (stringLength > groupingLength)
{
for(int i = groupingLength; i < stringLength; i = i + groupingLength)
{
var subStringLength = Math.Min(stringLength - i, groupingLength);
var groupedString = longString.Substring(i, subStringLength);
sb.Append(", ").Append(groupedString);
}
}
var finalString = sb.ToString();