比较两个文本框中的单词以找出差异?
Comparing words in two textbox to find difference?
我有 2 个文本框。
我想比较 Textbox1 和 Textbox2 的所有单词
假设文本框 1 中的第二个单词是 "me" 而文本框 2 中的第二个单词是 "him" 它将突出显示文本框 2 中的单词 "him" 和 "me"在 Textbox1 上。
示例:
方框 1 = 我是 男孩
方框 2 = 我是 女孩
盒子 1 = 他 是一个 男孩
box 2 =她是一个女孩
但现在我在比较单词时遇到了问题。我尝试按数组索引进行比较,但它只会显示在 Textbox1 中找不到的单词!
Dim txt1(TextBox1.Text.Split(" ").Length) As String
Dim txt2(TextBox2.Text.Split(" ").Length) As String
txt1 = TextBox1.Text.Split(" ")
txt2 = TextBox2.Text.Split(" ")
Dim diff1 As String = "" 'Differences between 1 and 2
Dim diff2 As String = "" 'Differences between 2 and 1
For Each diff As String In txt1
If Array.IndexOf(txt2, diff.ToString) = -1 Then
diff1 += diff.ToString & " "
End If
Next
For Each diff As String In txt2
If Array.IndexOf(txt1, diff.ToString) = -1 Then
diff2 += diff.ToString & " "
End If
Next
我也遇到了无法突出显示文本的问题
使用 Linq Except 扩展:
Dim diffs = txt1.Except(txt2)
输出:
- diffs(0) = "he"
- diffs(1) = "boy"
并且您可以在 txt1 和 txt2 之间交换:
Dim diffs = txt2.Except(txt1)
输出:
- diffs(0) = "she"
- diffs(1) = "girl"
也可以用这种方式
Dim txt1(TextBox1.Text.Split(" ").Length) As String
Dim txt2(TextBox2.Text.Split(" ").Length) As String
txt1 = TextBox1.Text.Split(" ")
txt2 = TextBox2.Text.Split(" ")
Dim diff1 As String = "" 'Differences between 1 and 2
Dim diff2 As String = "" 'Differences between 2 and 1
For i = 0 To txt2.Length - 1
If txt2(i) <> txt1(i) Then
diff1 += txt1(i).ToString & " "
End If
Next i
For x = 0 To txt1.Length - 1
If txt1(x) <> txt2(x) Then
diff2 += txt2(x).ToString & " "
End If
Next x
我有 2 个文本框。
我想比较 Textbox1 和 Textbox2 的所有单词
假设文本框 1 中的第二个单词是 "me" 而文本框 2 中的第二个单词是 "him" 它将突出显示文本框 2 中的单词 "him" 和 "me"在 Textbox1 上。
示例:
方框 1 = 我是 男孩
方框 2 = 我是 女孩
盒子 1 = 他 是一个 男孩
box 2 =她是一个女孩
但现在我在比较单词时遇到了问题。我尝试按数组索引进行比较,但它只会显示在 Textbox1 中找不到的单词!
Dim txt1(TextBox1.Text.Split(" ").Length) As String
Dim txt2(TextBox2.Text.Split(" ").Length) As String
txt1 = TextBox1.Text.Split(" ")
txt2 = TextBox2.Text.Split(" ")
Dim diff1 As String = "" 'Differences between 1 and 2
Dim diff2 As String = "" 'Differences between 2 and 1
For Each diff As String In txt1
If Array.IndexOf(txt2, diff.ToString) = -1 Then
diff1 += diff.ToString & " "
End If
Next
For Each diff As String In txt2
If Array.IndexOf(txt1, diff.ToString) = -1 Then
diff2 += diff.ToString & " "
End If
Next
我也遇到了无法突出显示文本的问题
使用 Linq Except 扩展:
Dim diffs = txt1.Except(txt2)
输出:
- diffs(0) = "he"
- diffs(1) = "boy"
并且您可以在 txt1 和 txt2 之间交换:
Dim diffs = txt2.Except(txt1)
输出:
- diffs(0) = "she"
- diffs(1) = "girl"
也可以用这种方式
Dim txt1(TextBox1.Text.Split(" ").Length) As String
Dim txt2(TextBox2.Text.Split(" ").Length) As String
txt1 = TextBox1.Text.Split(" ")
txt2 = TextBox2.Text.Split(" ")
Dim diff1 As String = "" 'Differences between 1 and 2
Dim diff2 As String = "" 'Differences between 2 and 1
For i = 0 To txt2.Length - 1
If txt2(i) <> txt1(i) Then
diff1 += txt1(i).ToString & " "
End If
Next i
For x = 0 To txt1.Length - 1
If txt1(x) <> txt2(x) Then
diff2 += txt2(x).ToString & " "
End If
Next x