替换文本框中的文本,然后将其添加到列表框中

时间:2016-11-14 22:46:40

标签: .net vb.net replace listbox stringbuilder

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    If TextBox11.Text.Contains("https") Then
        TextBox11.Text.Replace("https", "http")
        Debug.WriteLineIf(TextBox11.Text.Contains("http"), "youtube link https replaced with http")
        If TextBox11.Text.Contains("https") Then
            ListBox3.Items.Add(TextBox11.Text)
            Debug.WriteLine("items added to listbox")
        End If
    Else
        Debug.WriteLine("items added to listbox(without repalce)")
        ListBox3.Items.Add(TextBox11.Text)
    End If

End Sub

所以,我试图在这里做的是取代" https"用" https"在textbox11中,然后将它添加到listbox3,但是,它甚至没有替换文本由于某种原因,这是我需要一些帮助的地方。我知道,stringbuilder对此有好处,但我不知道知道如何使用它,我只找到了如何替换指定的文本,而不是整个句子。

P.S。对不起我的英文。

2 个答案:

答案 0 :(得分:2)

Replace方法返回带有替换文本的新字符串。它不会对你传入的相同字符串起作用。所以你需要重新分配Replace的结果

TextBox11.Text = TextBox11.Text.Replace("https", "http")

答案 1 :(得分:1)

我建议您使用以下代码(为了便于阅读而省略Debug子句):

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    If TextBox11.Text.ToLower.Contains("https") Then
        TextBox11.Text = TextBox11.Text.ToLower.Replace("https", "http")
    End If
    ListBox3.Items.Add(TextBox11.Text.ToLower)
End Sub

让我们稍微传播一下代码:

  • ToLower方法确保用户未使用大写字母输入值。
  • TextBox11.Text = TextBox11.Text.ToLower.Replace("https", "http")是将更正后的值分配给TextBox对象的正确方法。
  • If...End If结构的更改是可以理解的 - 无论ListBox值是否得到纠正,您都要填写TextBox对象。