#vb.net
Вопрос:
Как разделить на 2 разные строки с помощью пробела?
У меня есть строка с именем и ссылкой.
Мне нужно разделить его на 2 разные строки.
[LVL 8] Logan_Aasd http://www.google.com/1
[LVL 8] Jack_Jackosn http://www.google.com/2
[LVL 8] Mask_Off http://www.google.com/3
[LVL 8] Dream_Alive http://www.google.com/4
И мне нужно разделить их таким образом на другой richtextbox:
[LVL 8] Logan_Aasd
[LVL 8] Jack_Jackosn
[LVL 8] Mask_Off
[LVL 8] Dream_Alive
http://www.google.com/1
http://www.google.com/2
http://www.google.com/3
http://www.google.com/4
Я попытался разделить его на пробелы, а затем использовать For Each
. Код неправильный, но я думаю, что он близок к тому, что мне нужно.
Dim text As String = RichTextBox2.Text
Dim x() As String
x = text.Split(" "c)
For Each s As String In x
RichTextBox3.Text = s
Next
Комментарии:
1. Пробел является разделителем строк по умолчанию. Сплит(), так что вам просто нужно
Dim x = text.Split()
. Вероятно, вы хотите добавлять строки в текст вашего RTB, а не заменять их все на каждой итерации. —text
не совсем подходящее имя для переменной, выберите что-нибудь более описательное, которое также не рискует вмешиваться в существующие имена свойств, какText
свойство вашего RTB. Этот язык не чувствителен к регистру.2. Думаю, вы, вероятно, захотите использовать комбинацию строк. indexOf (), чтобы найти расположение последнего пробела в вашей строке, затем Строка. ПодСтрока (), чтобы получить два компонента после
Ответ №1:
Вы можете использовать что-то вроде этого:
Dim modifiedLines = New List(Of String)()
For index As Integer = 0 To lines.Length - 1
Dim url = lines(index).Substring(lines(index).LastIndexOf(" "c) 1)
modifiedLines.Insert(index, lines(index).Replace(url, String.Empty))
modifiedLines.Add(url)
Next
Это предполагает, что вы разделили свой контент на именованный строковый массив lines
.
В основном это делает то, что:
- Создайте список для хранения новых строк
- Зацикливайтесь на каждой существующей строке
- Получите URL-адрес, разделив последний экземпляр пробела в текущей итерированной строке, а затем доведя подстроку из этого пробела до конца
- Вставьте существующую строку, заменив URL-адрес пустой строкой в текущем индексе
- Добавьте URL-адрес в конец коллекции
Есть небольшая проблема в том, что если ваш URL-адрес дважды появится в строке, то он будет удален при вызове Insert
команды, но, основываясь на вашем примере, я не думаю, что это произойдет.
Живой Пример: https://dotnetfiddle.net/ejlj9y
Комментарии:
1. ПРИВЕТ, спасибо. Как я могу разделить ссылки из строки и получить список только ссылок?
2. Просто не включайте инструкцию Insert.