在vb.net中获取字符串一部分的有效方法

时间:2015-08-24 17:25:32

标签: vb.net string split

我必须解析一个字符串以获取其中的特定值。

以下是我需要解析的字符串示例:"@MSG 12,9: NINJUTSU"

这里我需要获取12值。值的顺序不会改变,这意味着我将始终以字符串中的第一个数字为目标;但是字符串的长度(12958)是可变的(但从不为负数),而消息(NINJUTSU)也在变化。

到目前为止,我继续这样做:

Dim tempErrorList As List(Of String) = errorMsg.Split(New Char() {":"}).ToList()

Dim listErr As List(Of String) = tempErrorList(0).Split(New Char() {","}).ToList()

Dim errCode As List(Of String) = listErr(0).Split(New Char() {" "}).ToList()

但是我不喜欢它,因为获得值需要3次分割。我不知道如何在一次或更少的操作中做到这一点?

1 个答案:

答案 0 :(得分:2)

与已删除的答案类似,您可以像select * from t1 where "key1" = "value1" 一样使用String.SpliterrorMsg.Split(" ,:".ToCharArray())执行上述操作,但只需一个函数调用。

errorMsg.Split(" ,:".ToCharArray())(1)会为您提供所需的"12"

或者,您可以使用String.SubString()String.IndexOf()的组合,但逻辑可能变得笨拙且不透明。 String.Split Alternatives (MSDN)提供了有关此方法的更多详细信息。