Vb.net 我想替换字符串中的一些字符。我使用了Replace命令。但这是行不通的

Vb.net 我想替换字符串中的一些字符。我使用了Replace命令。但这是行不通的,vb.net,Vb.net,我正在VB.Net中编写一些代码,从另一个字符串中减去一个字符串,但这不起作用。在输出中,目标字符串中没有任何更改。但是没有错误消息。请帮忙。谢谢 If RadioButton1.Checked Then TextBox1.Text = "" positive = (TextBoxp1.Text + TextBoxp2.Text + TextBoxp3.Text) negative = (TextBoxn1.Text + TextBoxn2

我正在VB.Net中编写一些代码,从另一个字符串中减去一个字符串,但这不起作用。在输出中,目标字符串中没有任何更改。但是没有错误消息。请帮忙。谢谢

    If RadioButton1.Checked Then
        TextBox1.Text = ""
        positive = (TextBoxp1.Text + TextBoxp2.Text + TextBoxp3.Text)
        negative = (TextBoxn1.Text + TextBoxn2.Text + TextBoxn3.Text)

        findstring = Replace(positive, negative, "")
        TextBox1.Text = findstring
    End If

vb.net中的连接符号是与(&)。如果使用加号且字符串包含数字,则可能会得到意外结果。计算表达式时不需要括号,除非在表达式与优先顺序冲突时建立计算顺序

您正在使用vb.net字符串.Replace方法。我会使用.net字符串.Replace方法,因为当您习惯于使用.net方法而不是特定于vb的方法时,在.net语言之间移动会更容易。 此方法在本例中取原始字符串
负数
,并查找整个
正数
字符串。如果它找到整个字符串,它将用空字符串替换它

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim positive = "b" & "cd" & "ef"
    Dim negative = "abc" & "def" & "ghi"
    TextBox1.Text = negative.Replace(positive, "")
    'Result is aghi
End Sub
如果试图从字符串中删除单个字母,则必须使用循环。幸运的是,字符串是字符数组

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim positive = "ceg"
    Dim negative = "abcdefg"
    For Each ch As Char In positive
        negative = negative.Replace(ch, "")
    Next
    TextBox1.Text = negative
    'Result abdf
End Sub

你把这条路弄得太复杂了。如果要从字符串中删除子字符串,请使用如下替换:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnRemove.Click
    If rdbtnRemove.Checked Then
        txtResultString.Text = Replace(txtLargeString.Text, txtSearchString.Text, "")
    End If
End Sub
您只需要两个单选按钮、三个文本框和一个按钮。如果在txtLargeString文本框中输入1121221114141,在txtSearchString文本框中输入2122并执行代码,则结果为11111 4141,这是从txtLargeString输入中删除txtSearchString输入的结果

或者,如果@Mary建议您使用更现代的replace版本,请使用以下代码:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnRemove.Click
    If rdbtnRemove.Checked Then
        txtResultString.Text = txtLargeString.Text.Replace(txtSearchString.Text, "")
    End If
End Sub

在各种文本框中放置的字符串是什么?
TextBox1
中的预期输出是什么?也许您应该首先为控件指定合理的描述性名称。至于这个问题,该代码完全按照它的功能工作,因此它工作得非常完美。如果它不符合您的要求,那么您应该编写不同的代码。由于您实际上没有提供您想要完成的工作的描述,因此我们很难建议代码应该是什么。您是否调试过该代码,即设置断点并逐步检查代码以检查每一步的状态?如果没有,现在就在这里发布还为时过早。如果是这样的话,您需要告诉我们您看到了什么。当您组合字符串时,首先使用&而不是+,将
选项Strict On
放在类文件的顶部(更好的是,始终在项目级别启用它)。这将突出上面代码中的问题。