左分裂,得到空白回归。

时间:2014-06-04 14:13:47

标签: vb.net

问题,我删除的角色不存在,我得到一个空白字符串

目标:按顺序查找三个字符,只获取我要查找的字符左侧的字符。但是如果角色不存在那么什么都不做。

代码:

Dim vleftString As String = File.Name
vleftString = Left(vleftString, InStr(vleftString, "-"))
vleftString = Left(vleftString, InStr(vleftString, "_"))
vleftString = Left(vleftString, InStr(vleftString, " "))

作为'修复'我做完了

Dim vleftString As String = File.Name
                    vleftString = Replace(vleftString, "-", " ")
                    vleftString = Replace(vleftString, "_", " ")
                    vleftString = Left(vleftString, InStr(vleftString, " "))
vleftString  = Trim(vleftString)

基于Left of a character in a string in vb.net

如果File.Name是1_2.pdf,则传递" - "然后在#34; "之前删除任何内容。 (虽然不是" "虽然我想要它)

当它遇到寻找剩余空间的线时,它会使vleftString变为空白。

1 个答案:

答案 0 :(得分:1)

由于我不熟悉(并避免)旧VB在这里使用.NET方法。我假设您要删除分隔符"-""_"" "后面的部分,然后您可以使用此循环:

Dim fileName = "1_2.pdf".Trim() ' Trim used to show you the method, here nonsense
Dim name = Path.GetFileNameWithoutExtension(fileName).Trim()
For Each separator In {"-", "_", " "}
    Dim index = name.IndexOf(separator)
    If index >= 0 Then
        name = name.Substring(0, index)
    End If
Next
fileName = String.Format("{0}{1}", name, Path.GetExtension(fileName))

结果:"1.pdf"