用随机值替换部分文本

时间:2015-06-05 09:39:55

标签: vb.net visual-studio

我想在这里制作一个随机函数,所以当我按下Button3时,它会取代数字" star。 9902 "一个全新的随机数,不替换文字" star。"然后显示在Textbox1中。 但是现在一切都被取代,包括文本。

我对编码很陌生,所以如果你们能帮助我的话会很棒。 VB13。

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

    If TextBox1.Text.Contains("star.9902") Then
        TextBox1.Text = TextBox1.Text.Replace("star.9902", "star. 'Here goes the random numbers")

    End If
    Dim rand As New Random

    Dim letter As String = ""

    For i = 0 To 3

        letter = letter & ChrW(rand.Next(Asc("0"), Asc("9") + 1))

    Next

    TextBox1.Text = letter


End Sub

3 个答案:

答案 0 :(得分:0)

首先,重用相同的Random实例,避免重复生成相同的序列。子外:

private shared rng as Random = new Random()

其次,要删除数字,正则表达式是迄今为止最简单的方法,同样在函数之外:

' Match one or more digits at the end of the input
private shared digitMatcher = new Regex("\d+$")

然后在函数中:

dim t = Textbox1.Text
t = digitMatcher.Replace(t, "")

然后附加新值,我只是生成0到9999之间的数字并使用前导数字格式化:

t &= (rng.Next(0, 10000)).ToString("0000")

最后:

Textbox1.Text = t

答案 1 :(得分:0)

我不确定我是否会跟随,再次对此我是新手。我想这是错的?

如果TextBox1.Text.Contains(" star.9902")那么             TextBox1.Text = TextBox1.Text.Replace(" star.9902"," star。'这里是随机数")

    End If

    Private Shared rng As Random = New Random()


    Private Shared digitMatcher = New Regex("\d+$")
    Dim t = TextBox1.Text
    t = digitMatcher.Replace(t, "")

    t &= (rng.Next(0, 10000)).ToString("0000")

    TextBox1.Text = t

End Sub

答案 2 :(得分:0)

你可以这样做吗?

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    Dim tempString as String
    If TextBox1.Text.Contains("star.9902") Then
        tempString = TextBox1.Text.substring(0,TextBox1.Text.IndexOf(".")+1)
    End If

    Dim rand As New Random

    Dim letter As String = ""

    For i = 0 To 3

        letter = letter & ChrW(rand.Next(Asc("0"), Asc("9") + 1))

    Next

    TextBox1.Text = tempString & letter


End Sub

您更换所有内容的原因是因为您将TextBox1.Text设置为仅在for循环中生成的letter(并且未添加'star。')。

这适用于任何以'。'结尾的单词。 (以及之后的4个数字)。您可以轻松地将其更改为包含任意数量的数字。