diff --git a/ICD.Common.Utils.Tests/StringUtilsTest.cs b/ICD.Common.Utils.Tests/StringUtilsTest.cs index c819051..0a56a34 100644 --- a/ICD.Common.Utils.Tests/StringUtilsTest.cs +++ b/ICD.Common.Utils.Tests/StringUtilsTest.cs @@ -67,6 +67,13 @@ namespace ICD.Common.Utils.Tests Assert.AreEqual("Foobar", StringUtils.UppercaseFirst("foobar")); } + [TestCase("test", "Test")] + [TestCase("test test", "Test Test")] + public static void ToTitleCase(string input, string expected) + { + Assert.AreEqual(expected, StringUtils.ToTitleCase(input)); + } + [Test, UsedImplicitly] public void ToIpIdStringTest() { diff --git a/ICD.Common.Utils/StringUtils.cs b/ICD.Common.Utils/StringUtils.cs index 6086721..c256216 100644 --- a/ICD.Common.Utils/StringUtils.cs +++ b/ICD.Common.Utils/StringUtils.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Linq; using System.Text; using System.Text.RegularExpressions; @@ -483,6 +484,17 @@ namespace ICD.Common.Utils return char.ToUpper(input[0]) + input.Substring(1); } + /// + /// Capitalizes the first character of each word. + /// + /// + /// + [PublicAPI] + public static string ToTitleCase(string input) + { + return CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input.ToLower()); + } + /// /// Formats an IPID to "0xFF" ///