You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET如何按空格拆分含名称与链接的字符串输出到RichTextBox

VB.NET 字符串拆分需求实现方案

现有代码问题

  • 直接将整个文本按单个空格拆分,会把等级标识[LVL 8]内部的空格、等级与用户名之间的空格全部打散,无法正确组合「等级+用户名」的完整部分
  • 循环遍历中直接对RichTextBox3.Text赋值,每次新值都会覆盖上一次的内容,最终只会保留最后一个拆分结果

正确实现逻辑

因为每行格式固定为「前缀内容(等级+用户名,内部可含空格)+ 链接(无空格)」,所以可以逐行处理,通过查找每行最后一个空格的位置拆分两部分,避免前缀内部空格的干扰。

实现代码

' 先按换行拆分所有行,兼容Windows和Unix换行格式
Dim allLines As String() = RichTextBox2.Text.Split({vbCrLf, vbLf}, StringSplitOptions.RemoveEmptyEntries)
' 分别存储前缀部分和链接部分
Dim prefixList As New List(Of String)
Dim linkList As New List(Of String)

For Each line As String In allLines
    ' 查找当前行最后一个空格的索引,链接一定在最后一个空格之后
    Dim lastSpacePos As Integer = line.LastIndexOf(" "c)
    If lastSpacePos > 0 Then
        ' 截取空格前的所有内容作为前缀,空格后的内容作为链接
        prefixList.Add(line.Substring(0, lastSpacePos).TrimEnd())
        linkList.Add(line.Substring(lastSpacePos + 1).Trim())
    End If
Next

' 拼接结果输出,先输出所有前缀,再输出所有链接
RichTextBox3.Text = String.Join(vbCrLf, prefixList) & vbCrLf & String.Join(vbCrLf, linkList)

代码说明

  • 优先按行拆分处理,避免不同行的内容互相干扰
  • 使用LastIndexOf定位最后一个空格,完美适配前缀内部存在空格的场景,比按空格拆分所有字段再拼接的方案容错性更高
  • 最终用String.Join批量拼接内容,比循环逐次追加文本的性能更好,也不会出现内容覆盖的问题

内容的提问来源于stack exchange,提问作者Break Inside

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 21:06:04