VB.NET Uppercase First

The VB.NET programming language

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.

Example

Upper: uppercase letters

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
Program that uppercases first letter: VB.NET

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
Performance optimization

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.

Exclamation mark

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

ToTitleCase

Framework: NET

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

Summary

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.


VB.NET: String