问题,我删除的角色不存在,我得到一个空白字符串
目标:按顺序查找三个字符,只获取我要查找的字符左侧的字符。但是如果角色不存在那么什么都不做。
代码:
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变为空白。
答案 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"