如果我想使用一个单词作为分隔符拆分字符串怎么办?
例如,This is a sentence
。
我想以 is
为分隔符进行拆分,并获得 This
和 a sentence
。
在 Java
中,我可以将一个字符串作为分隔符发送,但我该如何在 C#
中实现这一点?
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);
}
您可以使用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也会在单词"This"末尾的"is"处分割,因此我使用了Regex方法并在"is"周围包含了单词边界。然而,请注意,如果你只是错误地编写了这个例子,那么String.Split可能就足够了。
根据此贴的现有回答,这样实现更简单 :)
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]);
编辑:在数组中,“is”两侧都有空格,以保留您仅需要删除句子中的单词“is”,并使单词“this”保持不变的事实。
简而言之:
string[] arr = "This is a sentence".Split(new string[] { "is" }, StringSplitOptions.None);
.Split(new[] { "Test Test" }, StringSplitOptions.None)
您可以使用String.Replace()将要拆分的字符串替换为在字符串中不存在的字符,然后使用该字符上的String.Split来拆分结果字符串,以达到相同的效果。
这里有一个扩展函数,可以使用字符串分隔符进行拆分:
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]");
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 splitter = "is";
string[] array = "This is a sentence".Split(new string[] { splitter }, StringSplitOptions.None);
string phrase = "This is a sentence";
string[] words = phrase.Split(' ');
foreach (var word in words)
{
System.Console.WriteLine($"<{word}>");
}
欲了解更多信息,请访问微软关于 String.Split 的网站。
https://learn.microsoft.com/en-us/dotnet/csharp/how-to/parse-strings-using-split