如果我想使用一个字作为分隔符分割字符串,该怎么办?

例如,这是一个句子。

我想分开,得到这个和一句话。

在Java中,我可以发送一个字符串作为分隔符,但我如何在c#中实现这一点?


当前回答

...简而言之:

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

其他回答

或者使用这个代码;(相同:new String[])

.Split(new[] { "Test Test" }, StringSplitOptions.None)
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]);

编辑:“is”在数组的两边用空格填充,以保持这样一个事实,即你只想从句子中删除“is”一词,而“this”一词保持不变。

根据这篇文章的现有回复,这简化了实现:)

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);
        }


    }
}

下面是一个使用字符串分隔符进行分割的扩展函数:

public static string[] Split(this string value, string seperator)
{
    return value.Split(new string[] { seperator }, StringSplitOptions.None);
}

用法示例:

string mystring = "one[split on me]two[split on me]three[split on me]four";
var splitStrings = mystring.Split("[split on me]");

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);
}