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

如何使用Arrays和Split()函数移除字符串连续空格?现有代码未达预期

解决连续空格移除问题(仅用Split和数组操作)

嘿,我来帮你排查下代码的问题,顺便给出修复方案~

首先说下你当前代码为啥没效果:当你用Split(sta, " ")处理带连续空格的字符串时,连续的空格会被拆分成空字符串元素。比如输入"This is a wrong String",拆分后的数组会是["This", "", "is", "", "", "a", "wrong", "String"]。你原来的循环是把每个元素(包括空的)都加上空格拼接,空元素加空格就等于直接加空格,自然就保留了连续空格的问题,输出和输入也就没区别啦。

按照你的要求,只用Split和数组操作,我给你修改后的代码:

Function RemoveS(sta As String) As String
    Dim Warray() As String
    Dim sp As String = " "
    Dim EndStr As String = ""
    Warray = Split(sta, sp)
    
    For i = 0 To UBound(Warray)
        ' 跳过拆分出来的空字符串元素
        If Warray(i) <> "" Then
            ' 如果结果字符串已有内容,先加分隔空格再追加元素
            If EndStr <> "" Then
                EndStr = EndStr + sp
            End If
            EndStr = EndStr + Warray(i)
        End If
    Next i
    
    RemoveS = EndStr
End Function

代码逻辑说明:

  • 先用Split把字符串按空格拆分成数组,连续空格会生成空字符串元素
  • 遍历数组时,跳过所有空字符串元素,只处理有实际内容的部分
  • 拼接元素时做判断:如果结果字符串已有内容,先加一个单空格再追加元素;如果是第一个元素,直接追加
  • 最终返回的字符串就是单空格分隔的格式,没有连续空格,也不会有末尾多余空格

测试你给的示例:输入"This is a wrong String",调用这个函数后就能得到预期的"This is a wrong String"啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:15:39