2014-02-27 112 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