String VB.NET删除字符串中两个字符之间的特定字符

String VB.NET删除字符串中两个字符之间的特定字符,string,vb.net,String,Vb.net,在vb.net中,如何从序列中两个已知字符之间的字符串中删除字符。例如,如何从哈希标记之间的数字中删除逗号 余额,#163464.24#,现金簿期末余额:,#86689.45#,货币,结束因为我不擅长正则表达式: Dim str = "Balance,#163,464.24#,Cashbook Closing Balance:,#86,689.45#,Money,End" Dim split = str.Split("#"c) If UBound(split) > 1 Then F

在vb.net中,如何从序列中两个已知字符之间的字符串中删除字符。例如,如何从哈希标记之间的数字中删除逗号


余额,#163464.24#,现金簿期末余额:,#86689.45#,货币,结束

因为我不擅长正则表达式:

Dim str = "Balance,#163,464.24#,Cashbook Closing Balance:,#86,689.45#,Money,End"
Dim split = str.Split("#"c)
If UBound(split) > 1 Then
    For i = 1 To UBound(split) Step 2
        split(i) = split(i).Replace(",", "")
    Next
End If
str = String.Join("#", split)

您可以使用循环和
StringBuilder
,使用这种简单有效的方法:

Dim text = "Balance,#163,464.24#,Cashbook Closing Balance:,#86,689.45#,Money,End"
Dim textBuilder As New StringBuilder()
Dim inHashTag As Boolean = False

For Each c As Char In text
    If c = "#"c Then inHashTag = Not inHashTag ' reverse Boolean
    If Not inHashTag OrElse c <> ","c Then
        textBuilder.Append(c) ' append if we aren't in hashtags or the char is not a comma
    End If
Next
text = textBuilder.ToString()
Dim text=“余额,#163464.24#,现金簿期末余额:,#86689.45#,货币,结束”
Dim textBuilder作为新的StringBuilder()
Dim inHashTag为布尔值=False
将每个c作为文本中的字符
如果c=“#”c,则inHashTag=非inHashTag'反向布尔值
如果不在标签或字母c、c中,则
如果我们不在hashtags中或字符不是逗号,则为textBuilder.Append(c)'Append
如果结束
下一个
text=textBuilder.ToString()

在枚举字符时,为标签使用标志,当标志为
真时,删除逗号。下次出现
#
时,将标志设置为
false
。这绝对比我的建议安全得多。@tim schmelter谢谢你的建议,效果很好,也谢谢你@朋友