Yanıtlar:
http://msdn.microsoft.com/en-us/library/system.string.split.aspx
Dokümanlardan örnek:
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);
}
Aşağıdaki gibi Regex.Split yöntemini kullanabilirsiniz :
Regex regex = new Regex(@"\bis\b");
string[] substrings = regex.Split("This is a sentence");
foreach (string match in substrings)
{
Console.WriteLine("'{0}'", match);
}
Düzenleme : Bu, verdiğiniz örneği karşılar. Sıradan geldiğini hatırlatırız string.split da "bölünmüş olacak olan " kelimenin sonundaki "Bu", kullandığım dolayısıyla neden Regex yöntemi ile "etrafında kelime sınırları dahil olduğu ". Ancak, bu örneği yanlışlıkla yazdıysanız , String.Split'in muhtemelen yeterli olacağını unutmayın.
Bu yayındaki mevcut yanıtlara dayanarak, bu uygulamayı basitleştirir :)
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 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]);
DÜZENLEME: Eğer gerçeği korumak amacıyla dizideki boşluklu her iki tarafta doldurulur "dır" sadece kelime istediğiniz cümle ve kelime "bu" sağlam kalmasına kaldırılır "dır".
İstediğiniz bölünmüş dizeyi dizede oluşmayan bir karakterle değiştirmek için String.Replace () öğesini kullanabilir ve sonra aynı efekt için sonuçtaki dizeyi bölmek üzere bu karakterde String.Split kullanabilirsiniz.
Bölmeyi bir dize ayırıcıyla yapmak için bir uzantı işlevi:
public static string[] Split(this string value, string seperator)
{
return value.Split(new string[] { seperator }, StringSplitOptions.None);
}
Kullanım örneği:
string mystring = "one[split on me]two[split on me]three[split on me]four";
var splitStrings = mystring.Split("[split on me]");
var dict = File.ReadLines("test.txt")
.Where(line => !string.IsNullOrWhitespace(line))
.Select(line => line.Split(new char[] { '=' }, 2, 0))
.ToDictionary(parts => parts[0], parts => parts[1]);
or
enter code here
line="to=xxx@gmail.com=yyy@yahoo.co.in";
string[] tokens = line.Split(new char[] { '=' }, 2, 0);
ans:
tokens[0]=to
token[1]=xxx@gmail.com=yyy@yahoo.co.in
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));