我有一根很长的绳子,我想把它放在一个小地方。为了实现这一点,我将字符串分成空格上的行。算法是这样的:
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”不会中断,但我想要它。一个想法是我期待看到下一个空格出现在哪里,但我不确定这是否会导致尽可能少的行。