25 lines
884 B
C#
25 lines
884 B
C#
// Copyright (c) Microsoft. All rights reserved.
|
|
|
|
// ReSharper disable InconsistentNaming
|
|
public static class Utils
|
|
{
|
|
// Function used to wrap long lines of text
|
|
public static string WordWrap(string text, int maxLineLength)
|
|
{
|
|
var result = new StringBuilder();
|
|
int i;
|
|
var last = 0;
|
|
var space = new[] { ' ', '\r', '\n', '\t' };
|
|
do
|
|
{
|
|
i = last + maxLineLength > text.Length
|
|
? text.Length
|
|
: (text.LastIndexOfAny(new[] { ' ', ',', '.', '?', '!', ':', ';', '-', '\n', '\r', '\t' }, Math.Min(text.Length - 1, last + maxLineLength)) + 1);
|
|
if (i <= last) i = Math.Min(last + maxLineLength, text.Length);
|
|
result.AppendLine(text.Substring(last, i - last).Trim(space));
|
|
last = i;
|
|
} while (i < text.Length);
|
|
|
|
return result.ToString();
|
|
}
|
|
} |