提问人:markzzz 提问时间:1/19/2012 最后编辑:jordanzmarkzzz 更新时间:8/5/2022 访问量:814836
如何使用字符串分隔符拆分字符串?[复制]
How can I split a string with a string delimiter? [duplicate]
问:
我有这个字符串:
"My name is Marco and I'm from Italy"
我想拆分它,分隔符是 ,所以我应该得到一个数组is Marco and
My name
在 [0] 和I'm from Italy
在[1]。
如何使用 C# 做到这一点?
我试过:
.Split("is Marco and")
但它只想要一个字符。
答:
13赞
Patrick
1/19/2012
#1
您可以使用该方法获取字符串的位置,并使用该位置和搜索字符串的长度对其进行拆分。IndexOf
您也可以使用正则表达式。一个简单的谷歌搜索结果是这样的
using System;
using System.Text.RegularExpressions;
class Program {
static void Main() {
string value = "cat\r\ndog\r\nanimal\r\nperson";
// Split the string on line breaks.
// ... The return value from Split is a string[] array.
string[] lines = Regex.Split(value, "\r\n");
foreach (string line in lines) {
Console.WriteLine(line);
}
}
}
38赞
Anders Marzi Tornblad
1/19/2012
#2
.Split(new string[] { "is Marco and" }, StringSplitOptions.None)
考虑空间 surronding .是要在结果中包含空格,还是要删除它们?您很有可能想用作分隔符......"is Marco and"
" is Marco and "
5赞
Charles Lambert
1/19/2012
#3
有一个版本需要一个字符串数组和一个参数:string.Split
StringSplitOptions
http://msdn.microsoft.com/en-us/library/tabh47cf.aspx
评论
1赞
Anders Marzi Tornblad
1/19/2012
不,它需要一个字符串数组。
626赞
juergen d
1/19/2012
#4
string[] tokens = str.Split(new[] { "is Marco and" }, StringSplitOptions.None);
如果您有单字符分隔符(例如),您可以将其减少为(注意单引号):,
string[] tokens = str.Split(',');
评论
1赞
pomber
7/31/2015
您可以删除:string
.Split(new[] { "is Marco and" }, StringSplitOptions.None)
5赞
pomber
8/20/2015
new string[]
在这种情况下是多余的,你可以只使用new []
9赞
gsubiran
7/13/2016
请注意 str 中的单引号。分裂(',');而不是 str。分裂(“,”);我花了一段时间才注意到
2赞
garethb
12/23/2016
@user3656612 因为它接受字符(char),而不是字符串。字符用单引号括起来。
28赞
Johan
1/20/2017
我不明白为什么它们在 C# 中包含 string.split(char) 而不是 string.split(string)...我的意思是有string.split(char[])和string.split(string[])!
15赞
DanTheMan
1/19/2012
#5
请尝试使用此功能。
string source = "My name is Marco and I'm from Italy";
string[] stringSeparators = new string[] {"is Marco and"};
var result = source.Split(stringSeparators, StringSplitOptions.None);
21赞
Huusom
1/19/2012
#6
您正在将字符串拆分到一个相当复杂的子字符串上。我会使用正则表达式而不是 String.Split。后者更多地用于标记文本。
例如:
var rx = new System.Text.RegularExpressions.Regex("is Marco and");
var array = rx.Split("My name is Marco and I'm from Italy");
12赞
Guillaume Slashy
1/19/2012
#7
阅读 C# 拆分字符串示例 - Dot Net Pearls,解决方案可以是这样的:
var results = yourString.Split(new string[] { "is Marco and" }, StringSplitOptions.None);
上一个:PHP - 检查两个数组是否相等
下一个:在新标签页中提交 HTML 表单
评论