2014-02-27 344 views
1

我需要比較VB中兩個字符串中的字符並獲取不同字符數量的數值。我用這個來看看這兩個單詞是否通過檢查差異的數量來拼寫相同,儘管如果它們是相似的,我必須給予相應 - 因此需要的數值。非常感謝!字符串字符比較

一些僞代碼,可能會使事情更清晰:

Dim string1, string2 As String 
    Dim change As Integer 


    [On button press] 


    string1 = TextBox1.Text 
    string2 = TextBox2.Text 

    CompareCharacters(string1, string2) 

    FormatNumber of differences between strings = change 


    MsgBox(change) 

非常感謝。

+0

如果字符串沒有什麼相同的長度? – FredP

+0

你是指「不同人物的數量」是什麼意思?考慮「abc」和「axbc」。這是1,2還是3的區別? – Darryl

+0

這將是一個區別,我用它來確定這些單詞拼寫是否相同(事後來看,我認識到更多的上下文會有幫助) – user3320314

回答

-1

您可以遍歷字符串,並比較每個字符:

Dim cnt As Integer = 0 
For index = 0 to Math.Min(string1.Length, string2.Length) - 1 
    If string1.Substring(index, 1) <> string2.Substring(index, 1) Then 
    cnt = cnt + 1 
    End If 
Next 
Dim change As String = cnt.ToString() 
+1

您可能想要將其餘的字符添加到'cnt'變量上減速。 'Dim cnt As Integer = Math.Abs​​(string1.Length - string2.Length)' –

+0

*聲明:D –

+0

@Bjørn-RogerKringsjå:是的,你可以。這取決於你是否希望它們包含在差異計數中。 :) – Guffa

0

使用LINQ:

Friend Function AmountOfDifferentCharacters(ByVal String1 As String, 
              ByVal String2 As String) As Integer 

    Return (From c As Char In String2 Where Not String1.Contains(c)).Count 

End Function 
+0

非常感謝,這看起來是正確的,但我會如何實現這一點? – user3320314