【问题标题】:replace space in a string at random position in vb.net在vb.net中随机位置替换字符串中的空格
【发布时间】:2012-03-01 15:20:30
【问题描述】:

我想在一个字符串中随机选择一个空格并用一个单词(%word%)替换它,但是出现了问题。该位置无法固定,因为我希望它随机插入。我正在考虑的几件事:

1) 在空格处打断字符串并将其与单词合并 2)找一个随机的空格,用单词替换。我喜欢这一点,到目前为止,我所拥有的只是将 selectedtext 分解为字符串数组,然后遍历每一行。但我不知道如何找到随机字符串位置?请问有什么短小精悍的代码吗?

  If (rtfArticle.SelectedText.Length > 0) Then
        Dim strArray As String() = rtfArticle.SelectedText.Split(New Char() {ChrW(10)})
        For Each str3 As String In strArray
            If (str3.Contains(" ") = True) Then

            End If
        Next
    End If

【问题讨论】:

    标签: regex vb.net string richtextbox


    【解决方案1】:

    您可以使用Random 类来生成随机位置索引。

      Dim testString = "This is just a test for random position"
      Dim random = New Random()
      Dim randomPos = random.Next(0, testString.Length - 1)
      Debug.Print(String.Format("Char at Pos {0} = {1}", randomPos, testString.ElementAt(randomPos)))
    

    【讨论】:

      【解决方案2】:

      您可以找到字符串中的空格,随机选择一个,然后替换它。比如:

      ' Get string
      Dim data As String = rtfArticle.SelectedText
      ' Get space positions
      Dim spaces As New List(Of Integer)
      For i As Integer = 0 to data.Length - 1
        If data(i) = " "C Then spaces.Add(i)
      Next
      ' Get a random space
      Dim rnd As New Random()
      Dim pos As Integer = spaces(rnd.Next(spaces.Length))
      ' Remove the space
      data = data.Remove(pos, 1)
      ' Insert the replacement
      data = data.Insert(pos, "%word%")
      ' Put the string back
      rtfArticle.SelectedText = data
      

      【讨论】:

        猜你喜欢
        • 2017-05-20
        • 1970-01-01
        • 2020-12-26
        • 1970-01-01
        • 2018-05-21
        • 1970-01-01
        • 2019-09-08
        • 1970-01-01
        • 2021-05-29
        相关资源
        最近更新 更多