VB.NET: String

.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

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.


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



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.



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


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.