如何在一行中拆分和修剪字符串

时间:2018-12-12 11:32:44

标签: vb.net

我想分割一个字符串,然后将结果修剪成一行。
所以字符串:

 "psychology ¦ history ¦ geography"

应返回以下成员,且不要在末尾加上空格:

psychology
history
geography

我尝试过:

String.Split("¦").Trim

但是Trim不适用于数组。有没有一种单行方法,不管它有多脏,都可以完成这项工作?

我确定这已经被重复很多次了,但是我找不到VB.Net的相关解决方案。请不要仅在不解释如何将解决方案转换为VB.Net的情况下链接到另一种语言的问题。

2 个答案:

答案 0 :(得分:2)

您可以使用LINQ的Split方法在一行中TrimSelect字符串。

都将字符串分配给局部变量:

Dim input As String = "psychology ¦ history ¦ geography"
Dim result1 = input.Split("¦"c).Select((Function(s) s.Trim))

或直接使用字符串作为源:

Dim result2 = "psychology ¦ history ¦ geography".Split("¦"c).Select((Function(s) s.Trim))

请注意,Typeresult1中的result2现在是IEnumerable(Of String),而不是数组:
如果没有其他说明,LINQ的方法将返回IEnumerable<T>
另请注意,此语法假设Option InferOn。如果保留Off,则需要显式声明类型:

Dim result As IEnumerable(Of String) = (...)

如果需要字符串Array作为输出,则需要询问:

Dim result3 As String() = input.Split("¦"c).Select((Function(s) s.Trim)).ToArray()


关于附加到c方法参数的类型字符(Split

From the Visual Basic Language Reference: Char Data Type

  

键入字符。将文字类型字符C附加到   单字符字符串文字将其强制为Char数据类型。 Char   没有标识符类型字符。

答案 1 :(得分:0)

如果项目中没有嵌入空格,则只需将空格字符作为分隔符和管道传递即可。将其与“删除空条目”选项结合使用,多个空格分隔符不是问题。如果需要处理其他空格字符,则可以添加这些字符。

input.Split(New String() {"|", " "}, StringSplitOptions.RemoveEmptyEntries)