我试图删除Label
上的最后一个单词并使用它的斜杠,而不是将其放在String
或Array
中,因为这些单词是键入的,看起来像这样D:\Folder1\Folder2\Folder3\Folder4
,如果我点击一个按钮,它应该删除Folder4
,当我再次点击该按钮时,它应该删除Folder3
,依此类推。
Dim s As String = Label5.Text
Dim r As String = Replace(s, "\", "")
Label5.Text = r
这只删除斜线,我如何添加文本? 我试过这样的事情:
Replace(s, "\" & Label5.Text.TrimEnd, "")
但没有任何反应。帮助
答案 0 :(得分:1)
想法是,通过将字符串与\
分开,然后在分割数组中找到最后一个元素来查找最后一个单词
Dim s As String = Label5.Text '"D:\Folder1\Folder2\Folder3\Folder4"
Dim r As String = s.Replace("\" & s.Split("\")(s.Split("\").Length-1), String.Empty)
Label5.Text=r 'Console.Write(r)
答案 1 :(得分:1)
试试这个:
Dim r as String = Replace(s, s.Split("\").Last(), "")
.Last() 将确保您获得“\”之后的最后一个字
答案 2 :(得分:1)
字符串类有一个名为LastIndexOf的方法,它告诉你作为参数传递的最后一个字符的索引。
然后,Substring方法允许您仅保留该索引之前的部分
' Label.Text = "D:\Folder1\Folder2\Folder3\Folder4"
Dim pos As Integer = Label.Text.LastIndexOf("\")
if pos <> -1 Then
Label.Text = Label.Text.Substring(0, pos)
End If
无需在数组中拆分输入,然后重建字符串。
另一种非常简单的方法(但也带有假设)是使用Path类
' Label.Text = "D:\Folder1\Folder2\Folder3\Folder4"
Label.Text = Path.GetDirectoryName(Label.Text)
当然,假设您有一个正确键入的文件夹名称(不一定该文件夹存在)