如何计算c#中的某些字符?

时间:2014-06-11 05:46:28

标签: c# replace textbox

我是C#的新手,我需要制作一个可以在文本框中统计这些字符(š,ž,č)的程序。我把替换方法放入,但是说“替换”方法没有重载需要3个参数。我发现Replace方法不能带3个参数。问题是我不知道我可以使用哪些其他代码。有人可以帮忙吗?

public Form1()
{
    InitializeComponent();
}

private void btn1_Click(object sender, EventArgs e)
{
    lblDolzinaStavka.Text = txtBesedilo.Text.Length.ToString();

    int Sumniki = txtBesedilo.Text.Length - txtBesedilo.Text.Replace("š", "č", "ž").Length;
}

3 个答案:

答案 0 :(得分:7)

Replace用于将字符串中的一个字符或字符串替换为另一个字符或字符串。例如,"mum".Replace("u", "o")将返回"mom"。这不计算任何事情的发生 - 这根本不是你想要的方法。

听起来你想要这样的东西:

// Replace "foo" with a more meaningful name - we don't know what the
// significance of these characters is.
int foo = txtBesedilo.Text.Count(c => c == 'š' || c == 'č' || c == 'ž');

或者:

char[] characters = { 'š', 'č', 'ž' };
int foo = txtBesedilo.Text.Count(c => characters.Contains(c));

这两个片段都使用Enumerable.Count扩展方法,该方法计算集合中有多少项符合特定条件。在这种情况下,“集合中的项目”是“txtBesedilo.Text中的字符”,条件是它是否是您感兴趣的字符之一。

答案 1 :(得分:3)

int count = txtBesedilo.Text.Count(a => a == 'š' || a == 'č' || a == 'ž')

答案 2 :(得分:2)

您可以使用LINQ:

int result = txtBesedilo.Text.Count(x => (x == 'š' || x == 'ž' || x == 'č' ));
相关问题