vb.net function

PeterBaileyUk
PeterBaileyUk used Ask the Experts™
on
I would like to create a function that can compare two strings but not a normal compare:

Str1 "one two three"
Str2 "two one three"


it would check that the words in the string are identical (not case sensitive) but just in the wrong order. in the example here the output could be true

It needs to be efficient, maybe regex can do this or maybe vb.net has something a method for this.

I am in visual studio app
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Guy Hengel [angelIII / a3]Billing Engineer
Most Valuable Expert 2014
Top Expert 2009

Commented:
would this google project be what you are looking for?
https://code.google.com/p/google-diff-match-patch/
Ramkisan JagtapLead Developer

Commented:
Better way could be create a string array and the compare the different values.

Author

Commented:
i dont want too resolve close matches which may happen with fuzzy stuff. only where the words are all the same but in a different order
Angular Fundamentals

Learn the fundamentals of Angular 2, a JavaScript framework for developing dynamic single page applications.

Author

Commented:
I found this on a thread but not sure if this will work as text and the logic is the wrong intersect

Function RevIntersect(arr1() As String, arr2() As String) As String()
    Dim sResult, aux As New List(Of String)()

    aux.AddRange(arr1)
    aux.AddRange(arr2)

    For Each elem As String In aux
        If (Not arr1.Contains(elem) OrElse Not Arr2.Contains(elem)) AndAlso _
        Not sResult.Contains(elem) Then  
            sResult.Add(elem)
        End If
    Next

    Return sResult.ToArray()
End Function

Open in new window

Pallavi GodseSr. Digital Marketing Executive

Commented:
The .NET Framework provides several methods to compare the values of strings. So, it would be better to refer the link below -
https://msdn.microsoft.com/en-us/library/fbh501kz(v=vs.110).aspx
Retired
Distinguished Expert 2017
Commented:
Hi Peter;

The following code snippet should do what you are looking for.
Dim str1 = "One tWo thRee".ToLower().Split(" "c)
Dim str2 = "twO oNe tHree".ToLower().Split(" "c)

If str1.All(Function(w1) str2.Contains(w1)) AndAlso str1.Length = str2.Length Then
    Console.WriteLine("All words win w1 are in w2")
Else
    Console.WriteLine("All words win w1 are NOT in w2")
End If

Open in new window

Author

Commented:
I am going to play around with this. one thing i used to do in access was use the immediate window and push values into a module function. Does VS offer up a similar thing.? Oh and thank you, ive been slow to respond today.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial