Разделено пробелом vb.net

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

В основном это делает то, что:

  1. Создайте список для хранения новых строк
  2. Зацикливайтесь на каждой существующей строке
  3. Получите URL-адрес, разделив последний экземпляр пробела в текущей итерированной строке, а затем доведя подстроку из этого пробела до конца
  4. Вставьте существующую строку, заменив URL-адрес пустой строкой в текущем индексе
  5. Добавьте URL-адрес в конец коллекции

Есть небольшая проблема в том, что если ваш URL-адрес дважды появится в строке, то он будет удален при вызове Insert команды, но, основываясь на вашем примере, я не думаю, что это произойдет.

Живой Пример: https://dotnetfiddle.net/ejlj9y

Комментарии:

1. ПРИВЕТ, спасибо. Как я могу разделить ссылки из строки и получить список только ссылок?

2. Просто не включайте инструкцию Insert.