如何在文本框VB.NET中删除最后一个单词

时间:2016-02-11 07:56:51

标签: vb.net

我试图删除Label上的最后一个单词并使用它的斜杠,而不是将其放在StringArray中,因为这些单词是键入的,看起来像这样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, "")

但没有任何反应。帮助

3 个答案:

答案 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)

当然,假设您有一个正确键入的文件夹名称(不一定该文件夹存在)