查找字符串的前缀和后缀

时间:2014-02-07 16:33:42

标签: c#

假设我们有一个字符串“bread”,我想得到字符串的所有前缀和后缀。它的定义如下图所示。

前缀:

  

B,BR,BRE,面包机

后缀:

  

读,EAD,广告,d

string

现在我只能获得前缀,我认为这是错误的。

string pattern = "bread";
var prefixes = pattern.Where(x => x.ToString().StartsWith(pattern.Substring(0, 1))).ToList();

3 个答案:

答案 0 :(得分:3)

我会这样做:

string pattern = "bread";
var prefixes = Enumerable.Range(1, pattern.Length - 1)
                         .Select(p => pattern.Substring(0, p));
var suffixes = Enumerable.Range(1, pattern.Length - 1)
                         .Select(p => pattern.Substring(p, pattern.Length - p));

如果您不需要集合中的结果,您可能只想使用Dave Zych发布的简单for循环。

答案 1 :(得分:2)

为什么不循环?

string s = "bread";
for(int i = 1; i < s.Length; i++)
{
    Console.WriteLine(s.Substring(0, i)); //prefix
    Console.WriteLine(s.SubString(i, s.Length - i)); //suffix
}

答案 2 :(得分:0)

List<string> prefixes = new List<string>();
for (int i = 0; i < myString.Length; i++)
{
    prefixes.Add(myString.Substring(0,i));
}
List<string> sufixes = new List<string>();
for (int i = 0; i < myString.Length; i++)
{
    sufixes.Add(myString.Substring(i,myString Length - i));
}