如何计算c#中的某些字符
本文关键字:字符 何计算 计算 | 更新日期: 2023-09-27 18:07:59
我是c#新手,我需要编写一个程序,可以在文本框中计算这些字符(*,*,*)。我把replace方法放进去,但是它说没有重载方法" replace "有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;
}
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
扩展方法,该方法计算集合中有多少项符合特定条件。在本例中,"items In a collection"是"characters In txtBesedilo.Text
",条件是它是否是您感兴趣的字符之一。
int count = txtBesedilo.Text.Count(a => a == 'š' || a == 'č' || a == 'ž')
您可以使用LINQ:
int result = txtBesedilo.Text.Count(x => (x == 'š' || x == 'ž' || x == 'č' ));