Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 用随机值替换部分文本_Vb.net_Visual Studio - Fatal编程技术网

Vb.net 用随机值替换部分文本

Vb.net 用随机值替换部分文本,vb.net,visual-studio,Vb.net,Visual Studio,我想在这里创建一个随机函数,所以当我按下按钮3时,它会将数字“star.9902”替换为一个全新的随机数,而不替换文本“star.”,然后显示在Textbox1中。 但是现在所有的东西都被替换了,包括文本 我对编码很陌生,所以若你们能帮我的话,那个就太好了。 vb13 首先,重用相同的随机实例,避免重复生成相同的序列。在小组之外: private shared rng as Random = new Random() 其次,除去正则表达式中的数字是目前为止最简单的方法,也是在函数之外: ' M

我想在这里创建一个随机函数,所以当我按下按钮3时,它会将数字“star.9902”替换为一个全新的随机数,而不替换文本“star.”,然后显示在Textbox1中。 但是现在所有的东西都被替换了,包括文本

我对编码很陌生,所以若你们能帮我的话,那个就太好了。 vb13


首先,重用相同的随机实例,避免重复生成相同的序列。在小组之外:

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, "")
然后在函数中:

' 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

我不确定我是否会跟随,同样,我是新来的。我猜这是错的

如果TextBox1.Text.Contains(“star.9902”),则 TextBox1.Text=TextBox1.Text.Replace(“star.9902”,“star.”这里是随机数)


你能这样做吗

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
设置为
letter
,这是您仅在for循环中生成的(并且没有将“star.”添加到)


这适用于以“.”结尾的任何单词(以及其后的4个数字)。您可以轻松地将其更改为后面有任意数量的数字。

Ahaaaa!现在我明白了:)成功了!非常感谢。但我还有一个问题。如果我需要同时替换字母和数字而不仅仅是数字,那么代码应该是什么样子?您希望用什么来替换字母?更多的数字或字母?我正在考虑将“9902”替换为随机数字和字母。像这样:“star.j28mp0t4e”也可以在for循环中放置一个随机字符生成器。请看:这将同时生成数字和字母。顺便说一句,如果这个解决方案适合您,如果您能接受它作为答案,那就太好了:)