【发布时间】:2013-10-04 15:22:07
【问题描述】:
我有一个名为“RamaSubbaReddyabcdaacacakkkoooahgafffgahgghsa”的字符串。我想知道给定字符串中可用的“a”字符数。据我所知,我找到了两种方法来找到计数。即:1)通过使用 String.Split() 2)Linq Lambda 表达式
我的观察:
1) 如果我使用 String.Split() 它会返回错误的结果 2) 如果我使用 Linq Lambda 表达式,它会返回正确的结果。
我的疑问是如何使用 String.Split() 从给定字符串中获取给定拆分字符的计数
还请建议我从给定字符串“String.Split()”或“Linq Lambda”表达式中获取给定拆分字符计数的最佳方法是什么?
请找到完整的例子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SplitData
{
class Program
{
static void Main(string[] args)
{
SplitData("RamaSubbaReddyabcdaacacakkkoooahgafffgahgghsa", 'a');
SplitData("RamaSubbaReddyabcdaacacakkkoooahgafffgahgghsa", 'r');
SplitData("RamaSubbaReddyabcdaacacakkkoooahgafffgahgghsa", 'R');
SplitData("RamaSubbaReddyabcdaacacakkkoooahgafffgahgghsa", 'm');
SplitData("RamaSubbaReddyabcdaacacakkkoooahgafffgahgghsa", 'd');
SplitData("RamaSubbaReddyabcdaacacakkkoooahgafffgahgghsa", 'g');
SplitData("RamaSubbaReddyabcdaacacakkkoooahgafffgahgghsa", 's');
SplitData("RamaSubbaReddyabcdaacacakkkoooahgafffgahgghsa", 'o');
SplitData("RamaSubbaReddyabcdaacacakkkoooahgafffgahgghsa", 'c');
SplitData("RamaSubbaReddyabcdaacacakkkoooahgafffgahgghsa", 'u');
SplitData("RamaSubbaReddyabcdaacacakkkoooahgafffgahgghsa", 'f');
Console.ReadKey();
}
private static void SplitData(string data,char split)
{
// using lambda expresion
int len = data.AsEnumerable().Where(x => x.ToString().ToLower().Contains(split)).Count();
Console.WriteLine("Total '" + split + "' available are:{0} using lambda", len.ToString());
//using normal split function
len = data.Split(split).Length;
Console.WriteLine("Total '" + split + "' available are:{0} using normal split", len.ToString());
}
}
}
【问题讨论】:
-
这两个功能不等价。在第一个中您采用 String.ToLower() 在第二个中您采用“原样”的字符串。
-
嗨乔恩。这不是stackoverflow.com/questions/541954/… 的重复问题。请在将问题作为重复问题之前仔细阅读问题..因为我要问的是:>>>>>>在上面的问题中引用它这里我的疑问是如何通过使用从给定字符串中获取给定拆分字符的计数String.Split() 还请建议我从给定字符串“String.Split()”或“Linq Lambda”表达式中获取给定拆分字符计数的最佳方法是什么?
-
@RamaSubbaReddyM:链接的问题地址显示了如何使用 String.Split() 执行此操作,并讨论了哪个选项是“最佳”。这是重复的。
标签: c# string linq lambda split