Truncate String Without Word Break
Truncate string at a word near to the limit specified. Avoid word split.
commit 5ba4a07 · authored · 1 min read
/// <summary>/// Truncate string at a word near to the limit specified. Avoid word split./// </summary>/// <param name="input">string</param>/// <param name="length"></param>/// <param name="appendDots"></param>/// <returns></returns>public static string TruncateAtWord(this string input, int length, bool appendDots = false){ if (input == null || input.Length < length) return input; var iNextSpace = input.LastIndexOf(" ", length, StringComparison.Ordinal); var trimmedInput = string.Format("{0}", input.Substring(0, (iNextSpace > 0) ? iNextSpace : length).Trim());
if (appendDots) { return trimmedInput + "..."; } return trimmedInput;}Tests
[Fact]public void TruncateAtWordTests(){ "This is a long sentence".TruncateAtWord(6).Should().Be("This"); "This is a long sentence".TruncateAtWord(7).Should().Be("This is");}