使用streamreader逐行读取文本文件。当我到达某一行(即123 | abc | 99999 || ded || 789)时,我想用文本替换第一个空白区域。
到目前为止,我一直在玩
If sLine.Split("|")(3) = "" Then
'This is where I'm stuck, I want to replace that index with mmm
End If
我希望输出看起来像这样:123 | abc | 99999 | mmm | ded || 789
答案 0 :(得分:4)
考虑到你已经有代码确定" mmm"需要添加或不添加字符串,您可以使用以下内容:
Dim index As Integer = sLine.IndexOf("||")
sLine = sLine.Insert(index + 1, "mmm")
答案 1 :(得分:2)
您可以拆分字符串,修改数组并重新加入以重新创建字符串:
Dim sLine = "123|abc|99999||ded||789"
Dim parts = sLine.Split("|")
If parts(3) = "" Then
parts(3) = "mmm"
sLine = String.Join("|", parts)
End If
答案 2 :(得分:2)
我认为如果你找到一个或多个空元素,你想用数据替换第一个空元素,剩下的就是空白。你可以通过拆分管道来获得一个字符串数组,遍历数组并替换你遇到的第一个空元素并退出循环,然后重新加入你的数组。
Sub Main()
Dim data As String = "123||abc|99999||ded||789"
Dim parts = data.Split("|")
For index = 0 To parts.Length - 1
If String.IsNullOrEmpty(parts(index)) Then
parts(index) = "mmm"
Exit For
End If
Next
data = String.Join("|", parts)
Console.WriteLine(data)
End Sub
结果:
123|mmm|abc|99999||ded||789