私は長い紐を持っていて、それを小さなフィールドに収めたいと思っています。それを実現するために、文字列を空白の行に分割します。アルゴリズムは次のようになります。
public static string BreakLine(string text, int maxCharsInLine)
{
int charsInLine = 0;
StringBuilder builder = new StringBuilder();
for (int i = 0; i < text.Length; i++)
{
char c = text[i];
builder.Append(c);
charsInLine++;
if (charsInLine >= maxCharsInLine && char.IsWhiteSpace(c))
{
builder.AppendLine();
charsInLine = 0;
}
}
return builder.ToString();
}
しかし、短い単語の後に長い単語が続くと、これは破綻します。最大長が 16 の「foo howcomputerwork」は壊れませんが、壊れてほしいです。次の空白がどこで発生するかを楽しみにしていましたが、それが可能な限り少ない行になるかどうかはわかりません。