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