Below are some custom string methods for VB.NET that are found in various
scripting languages: PCase, Replace, ToSingleSpace, CharCount, Reverse, Left,
Right, and IsPalindrome. These methods are useful in common string operations.
Since the .NET Framework does not natively include these methods, you can use
the methods in to build your own "super string" class. Let's start
with the code, then explain it in detail.
Auxiliary Custom String Methods
Friend Class MyString
Public Shared Sub
Main()
Dim
strData As String
= "WeLcOmE tO VB.NET eNjoy
FoLkS"
Console.WriteLine("String
Value: {0}", strData)
Console.WriteLine("PCase
Equivalent: {0}", PCase(strData))
Console.WriteLine("Reverse
Equivalent: {0}", Reverse(strData))
Console.WriteLine("Is
'rotator' PalinDrome: {0}", IsPalindrome("rotator"))
Console.WriteLine("Is
'VB.NET' PalinDrome: {0}", IsPalindrome("VB.NET"))
Console.WriteLine("Left(string,5):
{0}", Left(strData, 5))
Console.WriteLine("Right(String,6):
{0}", Right(strData, 6))
Console.WriteLine("CharCount(Charcount,c):{0}",
CharCount("Charcount",
"C"))
Console.WriteLine("CharCount(CharCount,c,true):{0}",
CharCount("Charcount",
"C",
True))
Console.WriteLine("CharCount(CharCount,d,true):{0}",
CharCount("Charcount",
"d",
True))
Console.WriteLine("ToSingleSpace('welcome
to VB.NET'): {0}", ToSingleSpace("welcome
to VB.NET"))
Console.WriteLine("Replace(aaaaaa,aa,a):{0}",
Replace("aaaaaa",
"aa",
"a"))
Console.ReadLine()
End Sub
Public Shared Function
PCase(ByVal
strParam As String)
As String
Dim strProper As String
= strParam.Substring(0, 1).ToUpper()
strParam = strParam.Substring(1).ToLower()
Dim
strPrev As String
= ""
For
iIndex As Integer
= 0 To
strParam.Length - 1
If
iIndex > 1 Then
strPrev = strParam.Substring(iIndex - 1,
1)
End If
If strPrev.Equals("
") OrElse
strPrev.Equals(vbTab) OrElse strPrev.Equals(vbLf)
OrElse
strPrev.Equals(".")
Then
strProper &= strParam.Substring(iIndex,
1).ToUpper()
Else
strProper &= strParam.Substring(iIndex, 1)
End If
Next iIndex
Return
strProper
End Function
Public Shared Function
Replace(ByVal
strText As String,
ByVal
strFind As String,
ByVal
strReplace As String)
As String
Dim iPos As Integer
= strText.IndexOf(strFind)
Dim
strReturn As String
= ""
Do While
iPos <> -1
strReturn &= strText.Substring(0, iPos) & strReplace
strText = strText.Substring(iPos + strFind.Length)
iPos = strText.IndexOf(strFind)
Loop
If strText.Length > 0 Then
strReturn &= strText
End If
Return strReturn
End Function
Public Shared Function
ToSingleSpace(ByVal
strParam As String)
As String
Dim iPosition As Integer
= strParam.IndexOf(" ")
If
iPosition = -1 Then
Return strParam
Else
Return ToSingleSpace(strParam.Substring(0,
iPosition) & strParam.Substring(iPosition + 1))
End If
End Function
Public Shared Function
CharCount(ByVal
strSource As String,
ByVal
strToCount As String)
As Integer
Dim iCount As Integer
= 0
Dim
iPos As Integer
= strSource.IndexOf(strToCount)
Do While
iPos <> -1
iCount += 1
strSource = strSource.Substring(iPos + 1)
iPos = strSource.IndexOf(strToCount)
Loop
Return iCount
End Function
Public Shared Function
CharCount(ByVal
strSource As String,
ByVal
strToCount As String,
ByVal
IgnoreCase As Boolean)
As Integer
If IgnoreCase Then
Return CharCount(strSource.ToLower(),
strToCount.ToLower())
Else
Return CharCount(strSource, strToCount)
End If
End Function
Public Shared Function
Reverse(ByVal
strParam As String)
As String
If strParam.Length = 1 Then
Return strParam
Else
Return Reverse(strParam.Substring(1)) &
strParam.Substring(0, 1)
End If
End Function
Public Shared Function
Left(ByVal
strParam As String,
ByVal
iLen As Integer)
As String
If iLen > 0 Then
Return strParam.Substring(0, iLen)
Else
Return strParam
End If
End Function
Public Shared Function
Right(ByVal
strParam As String,
ByVal
iLen As Integer)
As String
If iLen > 0 Then
Return strParam.Substring(strParam.Length
- iLen, iLen)
Else
Return strParam
End If
End Function
Public Shared Function
IsPalindrome(ByVal
strParam As String)
As Boolean
Dim iLength, iHalfLen As Integer
iLength = strParam.Length - 1
iHalfLen = iLength \ 2
For
iIndex As Integer
= 0 To
iHalfLen
If
strParam.Substring(iIndex, 1) <> strParam.Substring(iLength - iIndex, 1)
Then
Return False
End If
Next iIndex
Return True
End Function
End Class
Output of above code:

The PCase method converts a string to proper case, capitalizing each word's
first character. It distinguishes words using whitespace characters such as
space, tab, line feed, and carriage return characters ( ' ', '\t', '\n', '\r').
Its usage is PCase(String).
The Replace method replaces strings with string phrases and characters. This
function finds characters passed in the second argument within the source string
in the first argument and replaces them with characters in the third argument.
Its usage is Replace(Source, Find, Replacement). For example,
Replace("abc","b","d") will return "adc".
The ToSingleSpace function converts multiple whitespace characters to single
whitespace characters. Its usage is ToSingleSpace(SourceString). For example,
ToSingleSpace("Welcome to VB.NET") will return "Welcome to VB.NET".
The CharCount method returns the number of occurrences of a substring in the
main string. CharCount has two overloads: one for case-sensitive operations and
the other for case-insensitive operations. For case-insensitive operations,
CharCount simply converts both string and substring parameters to full
lowercase, then calls the case-sensitive CharCount method. The CharCount method
can be useful for string-parsing operations. CharCount usages are
CharCount(Source, Find) or CharCount(Source, Find, true). For example,
CharCount("aaaaac", "a") and CharCount("aaaaac","A", true) will return 5, but
CharCount("aaaaac", "A") and CharCount("aaaaac", "A", false) will return 0.
The Reverse method reverses and returns the characters in a string argument. Its
usage is Reverse(Source). For example, Reverse("abc") will return cba.
The Left method returns a certain number of characters from the beginning, or
left side, of the string. Its usage is Left(Source, CharCount). For example,
Left("Welcome", 3) will return Wel.
The Right method returns a certain number of characters from the end, or right
side, of the string. Its usage is Right(Source, CharCount). For example,
Right("Welcome", 2) will return me.
The IsPalindrome function returns whether the passed string is a palindrome
reading the same backward as forward. Its usage is IsPalindrome(Source). For
example, IsPalindrome("abc") will return false, whereas IsPalindrome("121") will
return true.
Conclusion
Hope this article would have helped you in understanding Custom String Methods
using VB.NET