2009-07-14 162 views

回答

257

http://msdn.microsoft.com/en-us/library/system.string.split.aspx

例子:

string source = "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]"; 
string[] stringSeparators = new string[] {"[stop]"}; 
string[] result; 

// ... 
result = source.Split(stringSeparators, StringSplitOptions.None); 

foreach (string s in result) 
{ 
    Console.Write("'{0}' ", String.IsNullOrEmpty(s) ? "<>" : s); 
} 
51

可以使用Regex.Split方法,像这样:

Regex regex = new Regex(@"\bis\b"); 
string[] substrings = regex.Split("This is a sentence"); 

foreach (string match in substrings) 
{ 
    Console.WriteLine("'{0}'", match); 
} 

编辑:这满足你给的例子。注意,普通的String.Split也将在单词的末尾拆分的“”“这个”,因此为什么我用正则表达式方法,其中包括围绕“”字边界。但是,请注意,如果您错误地编写了此示例,则String.Split可能就足够了。从文档

+0

@编辑:我也不清楚,但你仍然可以使用正常的字符串分割,只是垫空间两侧,如果他的目标是只删除单词“是”。 – ahawker 2009-07-14 17:57:52

+1

这也行不通(至少不是没有更多的努力),因为你不知道空间应该在左边,右边还是两边都出现,而不知道被分割的单词的位置串。 – IRBMe 2009-07-14 18:03:31

+0

似乎过于复杂,因为String.Splity可以让你在一个字符串上分割... – 2009-07-14 18:51:16

4

您可以使用与string.replace()来取代你所需的分割字符串不字符串中出现,然后用字符串的字符。对该字符进行分割以分割相同效果的结果字符串。

25
string s = "This is a sentence."; 
string[] res = s.Split(new string[]{ " is " }, StringSplitOptions.None); 

for(int i=0; i<res.length; i++) 
    Console.Write(res[i]); 

编辑:“是”是为了保护你想要的单词的事实填补双方在阵列中的空间“是”从句子和单词删除“本”保持完好。

-5
string strData = "This is much easier" 
int intDelimiterIndx = strData.IndexOf("is"); 
int intDelimiterLength = "is".Length; 
str1 = strData.Substring(0, intDelimiterIndx); 
str2 = strData.Substring(intDelimiterIndx + intDelimiterLength, strData.Length - (intDelimiterIndx + intDelimiterLength)); 
27

基于这个帖子上现有的响应,这简化了实现:)

namespace System 
{ 
    public static class BaseTypesExtensions 
    { 
     /// <summary> 
     /// Just a simple wrapper to simplify the process of splitting a string using another string as a separator 
     /// </summary> 
     /// <param name="s"></param> 
     /// <param name="pattern"></param> 
     /// <returns></returns> 
     public static string[] Split(this string s, string separator) 
     { 
      return s.Split(new string[] { separator }, StringSplitOptions.None); 
     } 


    } 
} 
4

...总之:

string[] arr = "This is a sentence".Split(new string[] { "is" }, StringSplitOptions.None); 
3

或者使用此代码; (同样,新的String [])

.Split(new[] { "Test Test" }, StringSplitOptions.None)