Vous êtes sur la page 1sur 6

How to Add String Class Extension Methods ?

''StringExtension.vb

Imports System.Collections.Generic
Imports System.Linq
Imports System.Text

Namespace StringExt
Public Module StringExtension
Sub New()

End Sub
<System.Runtime.CompilerServices.Extension()> _
Public Function GetFirstNumber(ByVal strInsput As String) As Integer
Dim number As Integer = 0
Dim strNumber As String = ""
Dim bIsContNo As Boolean = True
Dim bNoOccued As Boolean = False

Try
Dim arry = strInsput.ToCharArray(0, strInsput.Length - 1)

For Each item As Char In arry


If Char.IsNumber(item) Then
strNumber = strNumber & item.ToString()

bIsContNo = True

bNoOccued = True
Else
bIsContNo = False
End If

If bNoOccued AndAlso Not bIsContNo Then


Exit For

End If
Next

number = Convert.ToInt32(strNumber)
Catch ex As Exception

Return 0
End Try

Return number

End Function

<System.Runtime.CompilerServices.Extension()> _
Public Function GetLastNumber(ByVal strInsput As String) As Integer
Dim number As Integer = 0
Dim strNumber As String = ""
Dim bIsContNo As Boolean = True
Dim bNoOccued As Boolean = False
Dim strLastNo As String = ""

Try
Dim arry = strInsput.ToCharArray(0, strInsput.Length)

For Each item As Char In arry


If Char.IsNumber(item) Then
strNumber = strNumber & item.ToString()

bIsContNo = True

bNoOccued = True

strLastNo = strNumber
Else
bIsContNo = False
End If

If bNoOccued AndAlso Not bIsContNo Then


strLastNo = strNumber
strNumber = ""
bNoOccued = False

End If
Next

number = Convert.ToInt32(strLastNo)
Catch ex As Exception

Return 0
End Try

Return number

End Function

<System.Runtime.CompilerServices.Extension()> _
Public Function GetIndexsInString(ByVal strInput As String, ByVal SubString
As String) As Integer()
Dim Index As Integer() = New Integer(1) {}

If strInput.Contains(SubString) Then
For startIndex As Integer = 0 To strInput.Length - 1
If strInput.Substring(startIndex, SubString.Length) = SubString
Then
Index(0) = startIndex
Index(1) = startIndex + SubString.Length - 1

Exit For
End If
Next
End If

Return Index
End Function

<System.Runtime.CompilerServices.Extension()> _
Public Function RemoveString(ByVal strInput As String, ByVal StringValue As
String) As String
Dim strResult As String = strInput

Dim Index As Integer() = New Integer(1) {}

Index = strInput.GetIndexsInString(StringValue)

If Index(0) <> Index(1) Then


strResult = strInput.Remove(Index(0), (Index(1) - Index(0)) + 1)
End If

Return strResult
End Function

<System.Runtime.CompilerServices.Extension()> _
Public Function ReplaceFirst(ByVal strInput As String, ByVal strOldString
As String, ByVal strNewString As String) As String
Dim strResult As String = strInput

If strInput.Contains(strOldString) Then
Dim Index As Integer() = New Integer(1) {}

Index = strInput.GetIndexsInString(strOldString)

If Index(0) <> Index(1) Then


Dim LowerHalfString As String = strInput.Substring(0, Index(0))
Dim UpperHalfString As String = strInput.Substring(Index(1) +
1, (strInput.Length - (LowerHalfString.Length + strOldString.Length)))

strResult = LowerHalfString & strNewString & UpperHalfString


End If
End If

Return strResult
End Function

<System.Runtime.CompilerServices.Extension()> _
Public Function ToSingleQuote(ByVal strInput As String) As String
Return InlineAssignHelper(strInput, "'" & strInput & "'")
End Function

<System.Runtime.CompilerServices.Extension()> _
Public Function UpperCaseFirstLetters(ByVal strInput As String) As String
Dim strResult As String = ""

Dim Temp As String = ""

Dim bUpperCaseNext As Boolean = False

For Index As Integer = 0 To strInput.Length - 1

If [Char].IsWhiteSpace(strInput(Index)) OrElse 0 = Index Then

Temp = Convert.ToString(strInput(Index))

If 0 = Index Then

Temp = Temp.ToUpper()
Else
bUpperCaseNext = True
End If

strResult = strResult & Temp


Else
Temp = Convert.ToString(strInput(Index))

If bUpperCaseNext Then
Temp = Temp.ToUpper()

bUpperCaseNext = False
End If

strResult = strResult & Temp


End If
Next

Return strResult
End Function

<System.Runtime.CompilerServices.Extension()> _
Public Function SortWordAlphabatical(ByVal strInput As String) As String
Dim strResult As String = ""

Dim array As String() = strInput.Split(" "c)

System.Array.Sort(Of String)(array)

For Each c In array


strResult = strResult & " " & c
Next

Return strResult
End Function

<System.Runtime.CompilerServices.Extension()> _
Public Function ReverseString(ByVal strInput As String) As String

Dim arr As Char() = strInput.ToCharArray()


Array.Reverse(arr)
Return New String(arr)

End Function

<System.Runtime.CompilerServices.Extension()> _
Public Function ReverseWords(ByVal strInput As String) As String
Dim strResult As String = ""

Dim array As String() = strInput.Split(" "c)

For Each c In array

strResult = strResult & " " & ReverseString(c)


Next

Return strResult
End Function
Private Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As
T) As T
target = value
Return value
End Function
End Module
End Namespace

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
''Module1.vb

Imports StringExtensionTest.StringExt
Module Module1

Sub Main()
Dim MyString As String = "this was the 1 original string i made on 7 7
2015"

Console.WriteLine(MyString)

Console.WriteLine("This is first number in string :{0}",


MyString.GetFirstNumber())

Console.WriteLine("This is Last number in string :{0}",


MyString.GetLastNumber())

Dim Index As Integer() = New Integer(1) {}

Index = MyString.GetIndexsInString("original")

Console.WriteLine("This is Indexes of original in string LowerIndex:


{0},UpperIndex:{01}", Index(0), Index(1))

Console.WriteLine("MyString before replacing original with real:")


Console.WriteLine(MyString)

MyString = MyString.ReplaceFirst("original", "real")

Console.WriteLine("MyString After replacing original with real:")


Console.WriteLine(MyString)

Console.WriteLine("MyString Remove:{0}", MyString.RemoveString("real"))

Console.WriteLine("MyString UpperCaseFirstLetters:{0}",
MyString.UpperCaseFirstLetters())

Console.WriteLine("MyString ToSingleQuote:{0}", MyString.ToSingleQuote())

Console.WriteLine("MyString SortWordAlphabatical:{0}",
MyString.SortWordAlphabatical())

Console.WriteLine("MyString SortWordAlphabatical:{0}",
MyString.ReverseString())

Console.ReadLine()

End Sub

End Module

Vous aimerez peut-être aussi