使用VB.NET动态创建字符串

时间:2010-10-22 11:34:54

标签: vb.net

我正在尝试根据我传递的一个长字符串创建一些字符串。

基本上这是我的长字符串

的一个例子
StrMain = AL123456 - PR123456 - RD123456 - LO123456

所以在这种情况下我想创建4个单独的字符串。

Str1 = AL123456
Str2 = PR123456
Str3 = RD123456
Str4 = LO123456

但是并不总是有很多或者可能有更多,所以我需要计算有多少-,然后创建所需的金额字符串。

有什么想法吗?

由于

杰米

3 个答案:

答案 0 :(得分:2)

您可以使用Split功能:

Dim tokens As String() = "AL123456 - PR123456 - RD123456 - LO123456".Split("-"C)

或者如果您想使用字符串作为分隔符:

Dim tokens As String() = "AL123456 - PR123456 - RD123456 - LO123456".Split({" - "}, StringSplitOptions.RemoveEmptyEntries)

答案 1 :(得分:2)

我们有:

var input = "AL123456 - PR123456 - RD123456 - LO123456"

然后

input.Split('-');

将返回

{ "AL123456 ", " PR123456 ", " RD123456 ", " LO123456" }

即。带有前导和尾随空格。

所以你需要修剪每个:

using System.Collections.Generic;
using System.Linq;

IEnumerable<string> result = input.Split('-').Select(s => s.Trim());

Select()需要.NET 3.5 +)


或者只是按" - "分开:

var result = input.Split(new string[] { " - " }, StringSplitOptions.None);

或使用VB.NET语法:

Dim result As String() = input.Split({ " - " }, StringSplitOptions.None)

我猜VB.NET有for-each的下一个语法:

For Each str As String In result
    Response.Write(str) ' or use str in other context '
End For

答案 2 :(得分:1)

使用split功能

这是我推荐的用途,您可以通过以下方式进行调整:

  • 添加更多分隔符(将字符串添加到分隔符数组中,如下所示:New String() {" - ", " _ "}
  • 删除空条目(不是必需的,但通常很有用)
Dim MyString As String = "value1 - value2 - value3 -  - value4"
Dim results As String() = MyString.Split(New String() {" - "}, StringSplitOptions.RemoveEmptyEntries)
' you get an array with 4 entries containing each individual string