VB.NET - 在第一个整数处停止读取的子字符串函数,可能吗?
VB.NET - Substring function that stops reading at first integer, possible?
我目前有一个包含 500 多行路径的文本文件。
(即 N:\Fork\Cli\Scripts\ABC01.VB)
其中一些文件名的长度不同(即 ABC01.VB、ABCDEF123.VB 等)
我怎样才能使用 substring 函数删除路径名、数字和文件类型,只留下字母。
比如处理N:\Fork\Cli\Scripts\ABC01.VB,返回ABC。
或 N:\Fork\Cli\Scripts\ZUBDK22039.VB 并返回 ZUBDK.
我只能使用此代码检索前 3 个字母
Dim comp As String = sLine.Substring(28, 3)
sw.WriteLine(comp)
正如 Plutonix 指出的那样,将文件名与路径隔离开来的最佳方法是使用 System.IO.Path.GetFileNameWithoutExtension
.
您可以像这样从文件名中提取字母(而不是数字或其他字符):
Dim myPath As String = "N:\Fork\Cli\Scripts\AB42Cde01.VB"
Dim filename As String = System.IO.Path.GetFileNameWithoutExtension(myPath)
Dim letters As String = filename.Where(Function(c) Char.IsLetter(c)).ToArray
以上代码将letters
设置为ABCde。
该代码依赖于将字符串视为字符数组的事实。 Where 方法处理字符串(数组)中的所有字符并仅选择字母(使用 Char.IsLetter 方法)。所选字符将转换为分配给 letters
变量的数组(字符串)。
我从您最近的评论中看到,数字不能与字母混合(如我的示例)。但是,代码应该仍然适用于您的情况。
我目前有一个包含 500 多行路径的文本文件。 (即 N:\Fork\Cli\Scripts\ABC01.VB)
其中一些文件名的长度不同(即 ABC01.VB、ABCDEF123.VB 等) 我怎样才能使用 substring 函数删除路径名、数字和文件类型,只留下字母。
比如处理N:\Fork\Cli\Scripts\ABC01.VB,返回ABC。 或 N:\Fork\Cli\Scripts\ZUBDK22039.VB 并返回 ZUBDK.
我只能使用此代码检索前 3 个字母
Dim comp As String = sLine.Substring(28, 3)
sw.WriteLine(comp)
正如 Plutonix 指出的那样,将文件名与路径隔离开来的最佳方法是使用 System.IO.Path.GetFileNameWithoutExtension
.
您可以像这样从文件名中提取字母(而不是数字或其他字符):
Dim myPath As String = "N:\Fork\Cli\Scripts\AB42Cde01.VB"
Dim filename As String = System.IO.Path.GetFileNameWithoutExtension(myPath)
Dim letters As String = filename.Where(Function(c) Char.IsLetter(c)).ToArray
以上代码将letters
设置为ABCde。
该代码依赖于将字符串视为字符数组的事实。 Where 方法处理字符串(数组)中的所有字符并仅选择字母(使用 Char.IsLetter 方法)。所选字符将转换为分配给 letters
变量的数组(字符串)。
我从您最近的评论中看到,数字不能与字母混合(如我的示例)。但是,代码应该仍然适用于您的情况。