首页 > 解决方案 > 按空间分割 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  

我需要以这种方式将它们拆分到不同的富文本框:

[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

标签: vb.net

解决方案


你可以使用这样的东西:

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


推荐阅读