我正在尝试根据我传递的一个长字符串创建一些字符串。
基本上这是我的长字符串
的一个例子StrMain = AL123456 - PR123456 - RD123456 - LO123456
所以在这种情况下我想创建4个单独的字符串。
Str1 = AL123456
Str2 = PR123456
Str3 = RD123456
Str4 = LO123456
但是并不总是有很多或者可能有更多,所以我需要计算有多少-
,然后创建所需的金额字符串。
有什么想法吗?
由于
杰米
答案 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