Réponses:
http://msdn.microsoft.com/en-us/library/system.string.split.aspx
Exemple de la documentation:
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);
}
Vous pouvez utiliser la méthode Regex.Split , quelque chose comme ceci:
Regex regex = new Regex(@"\bis\b");
string[] substrings = regex.Split("This is a sentence");
foreach (string match in substrings)
{
Console.WriteLine("'{0}'", match);
}
Edit : Cela satisfait l'exemple que vous avez donné. Notez qu'un String.Split ordinaire se divisera également sur le " est " à la fin du mot "ceci", c'est pourquoi j'ai utilisé la méthode Regex et inclus les limites des mots autour du " est ". Notez cependant que si vous venez d'écrire cet exemple par erreur, alors String.Split suffira probablement.
Sur la base des réponses existantes sur ce post, cela simplifie la mise en œuvre :)
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]);
EDIT: le "est" est rempli des deux côtés avec des espaces dans le tableau afin de préserver le fait que vous voulez seulement que le mot "soit" supprimé de la phrase et que le mot "ceci" reste intact.
Vous pouvez utiliser String.Replace () pour remplacer la chaîne de fractionnement souhaitée par un caractère qui n'apparaît pas dans la chaîne, puis utiliser String.Split sur ce caractère pour diviser la chaîne résultante pour le même effet.
Voici une fonction d'extension pour effectuer le fractionnement avec un séparateur de chaînes:
public static string[] Split(this string value, string seperator)
{
return value.Split(new string[] { seperator }, StringSplitOptions.None);
}
Exemple d'utilisation:
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));