如何通过另一个字符串拆分字符串?
问题描述:
我有一个字符串格式如下如何通过另一个字符串拆分字符串?
“的TestString 1 < ^>的TestString 2 < ^>测试STRING3
,我想通过拆分” < ^>”字符串。
使用以下声明它给出我想要的输出
"TestString 1 <^> TestString 2 <^> Test String3"
.Split("<^>".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
但如果我的字符串包含“<”,“>”或“^”的文字则上述拆分声明的任何地方将考虑以及
任何想法如何分割只为“< ^>”字符串?
答
通过使用ToCharArray
你的意思是“拆分任何这些字符”;对序列"<^>"
必须使用重载拆分接受string[]
:
string[] parts = yourValue.Split(new string[]{"<^>"}, StringSplitOptions.None);
或者在C#3:
string[] parts = yourValue.Split(new[]{"<^>"}, StringSplitOptions.None);
答
尝试另一个重载Split
方法:
public string[] Split(
string[] separator,
StringSplitOptions options
)
所以在你的情况下,它可能看起来像:
var result =
yourString.Split(new string[] {"<^>"},StringSplitOptions.RemoveEmptyEntries);
希望,这有助于。
答
编辑:正如其他人指出的那样:String.Split对你的用例有很好的重载。下面的答案仍然正确(如在工作中),但是 - 不是要走的路。
这是因为这个string.Split重载需要一个分隔符数组。他们每个人分裂字符串。
你想:Regex.Split
Regex regex = new Regex(@"<\^>");
string[] substrings = regex.Split("TestString 1 <^> TestString 2 <^> Test String3");
和 - 阿里纳斯:
"<^>".ToCharArray()
其实只是一个奇特的方式说
new[]{'<', '^', '>'}
STRING3?我刚开始寻找一个新的未知类。错字虽然,对吧? :) – 2010-04-12 12:08:43
@Benjamin - 我误解它作为源变量名称(格式可能更清晰...)。澄清为“yourValue” - 更好? – 2010-04-12 12:15:32
当然。无论如何,从我+1反正,与正则表达式.Split是愚蠢的第一位.. – 2010-04-12 12:23:34