Working with Strings in Visual Basic

From Techotopia
Revision as of 14:41, 2 August 2007 by Neil (Talk | contribs) (Concatenating Strings in Visual Basic)

Jump to: navigation, search

In teh real world, humans communicate usign words and sentences. Given that most computer applications need to interact with humans it is not surprising that the average Visual Basic programmer spends a lot of time dealing with words and sentences in the form of String when developing applications.

In this chapter we will explore the subject of manipulating strings in Visual Basic.


Contents


Joining Strings in Visual Basic

The process of combining two strings together to form one string is called concatenation. Strings are concatenated in Visual Basic using the ampersand (&) operator. For example, the following Visual Basic code sample combines three strings together to create a single string, which is assigned to a third string variable:

Dim strFirstName As String = "Fred"
Dim strLastName As String = "Smith"
Dim strTitle As String = 'Mr."
Dim strSalutation As String

strSalutation = strTitle & " " & strFirstName & " " & strLastName

Note that the above example also puts space characters between each string. The above code, therefore, will assign the following string to the strSalutation variable:

Mr. Fred Smith

String concatenation does not have to be limited to variables. String literals may also be included in a concatenation. String literals are strings of text placed directly into quotes. For example the following variation of the above example creates a string which reads "Hello Mr. Fred Smith":

Dim strFirstName As String = "Fred"
Dim strLastName As String = "Smith"
Dim strTitle As String = 'Mr."
Dim strSalutation As String

strSalutation = "Hello" & strTitle & " " & strFirstName & " " & strLastName

Finding the Length of a String

it is common to need to find out the number of characters in any given string. Visual Basic provides mechanisms for finding the length of both string variables and string literals. The length of a string literal can be obtained using the Len() function, which takes the string as an argument and returns the length:

Dim decLength As Decimal

decLength = Len("This is a string literal")

This technique works equally well when dealing with string variables:

Dim decLength As Decimal
Dim strMyString As String = "This is a String Variable Value"

decLength = Len(strMyString)

It is importsant to understand that a String variable is really an object which has properties and methods like any other object. One such method is the Length() method which can also be used to obtain the length of a string variable:

Dim decLength As Decimal
Dim strMyString As String = "This is a String Variable Value"

decLength = strMyString.Length()

Extracting Text from the Beginning of String

A portion from the beginning of a string can be extracted using the Microsoft.VisualBasic.Left() function. This function takes two paramaters, the string from which the text is to extracted and the number of characters to extract. For example, the following code extracts the word "This" from the string:

Dim strMyString As String = "This is a String Variable Value"

Microsoft.VisualBasic.Left(strMyString, 4)

Extracting Text from the End of a String

Text may be extracted from the end of a string using the Visual Basic Microsoft.VisualBasic.Right() function. This function accepts two parameters. The first parameter is either a string literal, or a string variable from which the text is to be extracted. The second parameter tells the function how many characters back from the end of the string to begin the extraction. For example, the following code excerpt will result in the word "Spring" being extracted from the string and assigned to the strLastWord variable:

Dim strLastWord As String

strLastWord = Microsoft.VisualBasic.Right("Paris in the Spring", 6)

Extracting Text from Anywhere in a String

So far we have looked at extracting text from the beginning and end of a string. Visual Basic also provides a function for extracting any any number of characters from any position in a string. This is achieved using the Visual Basic Mid() function.

The Mid() function accepts two mandatory and one optional parameter as follows:

  • The string literal or variable from which the text is to be extracted
  • The starting character position in the string from which the text extraction should begin
  • Optionally, the number of characters to extract. If omitted all characters from the start position to the end of the string are extracted.

The following Visual Basic code excerpt extracts the word "Paris" from the string literal and assigns it to the strMidString variable:

Dim strMidString As String

strMidString = Mid("Visit Paris today", 7, 5 )

Searching for a Substring

It is quite common to need to search a string for the occurrence of another string (otherwise known as a substring). To find out if a string contains a particular substring in Visual Basic we use the Instr() function.

The Visual Basic Instr() function accepts one optional, and two mandatory parameters. The function is a little odd in that it is the first parameter which is optional (most other function always make the first parameter mandatory). The syntax for using Instr() is as follows:

Instr([start position, string, substring )

The parameters accepted by Intr() are as follows:

  • start position - (Optional) Dictates where in the string to begin the search. If this parameter is omitted the search begins from the start of the string.
  • string - The string literal or string variable in which the search is to be performed
  • substring - The substring for which to search

If a match to the substring is found, Instr() returns the character location of the start of the substring. If no match is found, the function returns 0.

The following Visual Basic code excerpt uses Instr() to locate the first instance of a space character and then uses the Mid() function to extract the rest of the string thereby extracting the last name from the person's full name:

Dim strFullName As String = "John Smith"
Dim strLastName As String

strLastName = Mid( StrFullName, Instr(strFullName, " "))

Trimming Leading and Trailing Spaces from a String

In the above example you may have noticed that the Mid() function returned us the last name of the customer, but also extracted the space character. It is extremely common when handling strings in Visual Basic to find that either leading or trailing spaces need to be cropped from a string. To address this need, Visual Basic provides the following three functions. All three functions take as a single parameter the string to be trimmed and return the modified string:

  • Trim() - Removes all spaces from the beginning and end of the specified string.
  • LTrim() - Removes all spaces from the beginning of the specified string.
  • RTrim() - Removes all spaces from the end of the specified string.

Using the Trim() function we can now remove the leading space from our previous example:

Dim strFullName As String = "John Smith"
Dim strLastName As String

strLastName = Trim ( Mid( StrFullName, Instr(strFullName, " ")) )