4

我会尽力解释我在寻找什么。目前,我正在使用此代码每 x 个字符换行一次。

public static string SpliceText(string text, int lineLength)
    {
        return Regex.Replace(text, "(.{" + lineLength + "})", "$1" + Environment.NewLine);

    }

这很好用,但通常它会破坏每个 x 数字,显然有时会破坏一个单词。代码是否可以检查它是否打破了中间词,如果它不是中间词,无论如何都要打破,但现在检查中断后的第一个字符是否是空格,如果是,则将其删除?

我知道我要求很多,但无论如何提前谢谢!

4

1 回答 1

14

尝试这个:

public static string SpliceText(string text, int lineLength)
{
    var charCount = 0;
    var lines = text.Split(new string[] {" "}, StringSplitOptions.RemoveEmptyEntries)
                    .GroupBy(w => (charCount += w.Length + 1) / lineLength)
                    .Select(g => string.Join(" ", g));

    return String.Join("\n", lines.ToArray());
}

这是我的屏幕截图: 在此处输入图像描述

于 2013-05-24T04:00:58.293 回答