Я ищу, чтобы заменить все вхождение «[2]» в данной строке Вот моя текущая функцияЗаменить экземпляр на основе индекса массива
Dim replace() As String
replace = Split("3,2,4,1", ",")
Dim orig As String = "[2] [2] [2] [2]"
Dim search As String = "[2]"
sb = New StringBuilder(orig)
For i As Integer = 0 To replace.Length - 1
Dim Occurrence = sb.ToString().IndexOf(search)
If Occurrence > -1 Then
If (replace(j) = "2") Then
sb.Replace(search, "[2]", firstOccurrence, search.Length)
j = j + 1
Else
sb.Replace(search, "[" & replace(j) & "]", firstOccurrence, search.Length)
j = j + 1
End If
End If
Next
На самом деле я получаю это:
Output : [3] [4] [1] [2]
Я ищу, чтобы получить что-то вроде этого:
Output : [3] [2] [4] [1]
Спасибо
-х
Проблема с этим решением, хотя это получает быть большими борами памяти в большем сценарии данных. Все, что смена строки плохо обрабатывается VB –
Согласен, она также не учитывает, если было более 4 вхождений «[2]», поэтому было бы неважно просто копировать/вставлять и используйте ... так что OP используйте это как пример того, как можно использовать startIndex, но есть и другие проблемы, которые необходимо продумать, а также – soohoonigan
спасибо за вашу помощь, на самом деле у меня есть 80 файлов (ответы) и 80 файлов (вопросы) с большими данными .. Я буду использовать что-то вроде этого orig = File.ReadAllText ("F: \\" & filname & ".csv"), replace = Split (File.ReadAllText ("F:" & filname & «.txt»), и я закончу что-то вроде этого File.WriteAllText («F: \» & filname & «.csv», sb.ToString), я думаю, что буду использовать большую память – Dexter