заменить пробел в строке в произвольной позиции в vb.net - PullRequest
0 голосов
/ 01 марта 2012

Я хочу выбрать случайный пробел в строке и заменить его словом (% word%), но есть проблема. Положение не может быть зафиксировано, так как я хочу, чтобы оно было вставлено при случайном разрыве. Несколько вещей, которые я рассматриваю:

1) разбить строку на пробел и объединить ее со словом 2) найти случайное пространство и заменить его словом. Мне нравится эта точка, и пока все, что у меня есть, это разбить выбранный текст на строковый массив, а затем перебрать каждую строку. Но я не знаю, как найти случайную позицию строки? Какой-нибудь короткий и сладкий код, пожалуйста?

  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

Ответы [ 2 ]

1 голос
/ 01 марта 2012

Вы можете использовать класс 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)))
0 голосов
/ 01 марта 2012

Вы можете найти пробелы в строке, выбрать один случайным образом и заменить его.Что-то вроде:

' 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
...