.NET Array Class File String Sub ArrayList Cast Console DataTable DateTime Dictionary Enum For If IndexOf Interface Lambda LINQ List Nothing Parse Process Property Regex Replace Select Sort Split StringBuilder Substring
This Function uppercases the first letter. It acts upon a VB.NET String. The value "test" becomes "Test". None of the other characters should be modified. And if the first character is whitespace or a digit, it should not be affected.
Here:We introduce a custom method that uppercases the first letter. A built-in method, ToTitleCase, is also available in the Framework.
First, this program introduces the UppercaseFirstLetter function, which receives a String and returns a String. In this function, we first test for null or empty parameters, and exit early in this case.
Next, we call ToCharArray to convert the String into a mutable array of characters. Then, we use the Char.ToUpper method to uppercase the first letter, and we finally return a new String instance built from the character array.Char Array
VB.NET program that uppercases first letter Module Module1 Sub Main() Console.WriteLine(UppercaseFirstLetter("sam")) Console.WriteLine(UppercaseFirstLetter("perls")) Console.WriteLine(UppercaseFirstLetter(Nothing)) Console.WriteLine(UppercaseFirstLetter("VB.NET")) End Sub Function UppercaseFirstLetter(ByVal val As String) As String ' Test for nothing or empty. If String.IsNullOrEmpty(val) Then Return val End If ' Convert to character array. Dim array() As Char = val.ToCharArray ' Uppercase first character. array(0) = Char.ToUpper(array(0)) ' Return new string. Return New String(array) End Function End Module Output Sam Perls VB.NET
This function, which uses the ToCharArray constructor, is somewhat faster and less memory-intensive than a version that uses the Substring method multiple times. It cuts down on the number of new string instances allocated.
Tip:In performance analysis, eliminating string allocations is often a clear win. Using ToCharArray here helps.
Warning:This function has a limitation. It won't correctly process names that have multiple uppercase letters in them.
So:The name "McChrystal" would be changed to "Mcchrystal" if the input string was "mcchrystal". This could be corrected with a Dictionary.Dictionary
Instead of this custom implementation, you could use the ToTitleCase function from the .NET Framework. With ToTitleCase, every word is capitalized, which is a slightly different behavior from the implementation above.ToTitleCase Function
We learned one way you can uppercase only part of a string, such as the first letter. You could develop more sophisticated logic to uppercase or change other parts of the character array. The approach would be equally effective.
Note:This method could be used to clean up poorly formatted character data, as from a text file or database.