如果我想使用一个字作为分隔符分割字符串,该怎么办?
例如,这是一个句子。
我想分开,得到这个和一句话。
在Java中,我可以发送一个字符串作为分隔符,但我如何在c#中实现这一点?
如果我想使用一个字作为分隔符分割字符串,该怎么办?
例如,这是一个句子。
我想分开,得到这个和一句话。
在Java中,我可以发送一个字符串作为分隔符,但我如何在c#中实现这一点?
当前回答
下面是一个使用字符串分隔符进行分割的扩展函数:
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]");
其他回答
根据这篇文章的现有回复,这简化了实现:)
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);
}
}
}
...简而言之:
string[] arr = "This is a sentence".Split(new string[] { "is" }, StringSplitOptions.None);
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));
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”一词保持不变。
您可以使用string . replace()将所需的分割字符串替换为字符串中不存在的字符,然后使用string。在该字符上拆分以拆分结果字符串以获得相同的效果。