asp.net 计算字符串中各个字符串出现的次数

计算字符串中各个字符串出现的次数可以通过 Hash 表(Dictionary)来实现,同时可以利用正则表达式对字符串进行匹配。本攻略将根据输入的字符串 s,利用 Dictionary 统计各个字符串出现的次数,并给出两个示例说明。

步骤 1:导入命名空间

在代码文件中引入以下命名空间:

using System.Collections.Generic; // 引用集合命名空间
using System.Text.RegularExpressions; // 引用正则表达式命名空间

步骤 2:创建 Dictionary 类型变量

创建一个名为 count 的 Dictionary 类型变量,用于存储字符串中各个字符串出现的次数。

Dictionary<string, int> count = new Dictionary<string, int>();

以上代码表示创建了一个名为 count 的 Dictionary,其键(key)为字符串类型,值(value)为整型。

步骤 3:使用正则表达式匹配字符串

利用正则表达式对输入的字符串 s 进行匹配,将匹配到的字符串作为键(key),并将它们的出现次数作为值(value)存入 count 中。这里使用了 Regex 类的 Matches 方法和 foreach 循环。

MatchCollection matches = Regex.Matches(s, @"\b\w+\b");
foreach (Match match in matches)
{
    string word = match.Value;
    if (count.ContainsKey(word))
    {
        count[word]++;
    }
    else
    {
        count[word] = 1;
    }
}

以上代码使用正则表达式 \b\w+\b 来匹配字符串 s 中的单词。\b 表示单词的边界,\w+ 表示匹配 1 个或多个连续的字母或数字字符。

在 foreach 循环中,首先取出当前匹配到的字符串 word。如果 count 中已存在 key 为 word 的键值对,则将值加 1;否则,将 key 值为 word 的键值对插入到 count 中,并将值设为 1。

步骤 4:遍历 Dictionary,统计各个字符串出现的次数

遍历 Dictionary 中存储的键值对,将每个键值对按照指定格式输出。

foreach (KeyValuePair<string, int> pair in count)
{
    Console.WriteLine("{0}出现了{1}次。", pair.Key, pair.Value);
}

以上代码使用 foreach 循环访问 count 中的每个键值对。对于每个键值对,输出键(key)和值(value)。

示例一:统计一段话中各个单词出现的次数

string s = "Hello world! This is a demo sentence that can be used for counting word occurrences. It is a good idea to have some examples for testing.";
Dictionary<string, int> count = new Dictionary<string, int>();
MatchCollection matches = Regex.Matches(s, @"\b\w+\b");
foreach (Match match in matches)
{
    string word = match.Value;
    if (count.ContainsKey(word))
    {
        count[word]++;
    }
    else
    {
        count[word] = 1;
    }
}
foreach (KeyValuePair<string, int> pair in count)
{
    Console.WriteLine("{0}出现了{1}次。", pair.Key, pair.Value);
}

运行结果如下:

Hello出现了1次。
world出现了1次。
This出现了1次。
is出现了1次。
a出现了2次。
demo出现了1次。
sentence出现了1次。
that出现了1次。
can出现了1次。
be出现了1次。
used出现了1次。
for出现了1次。
counting出现了1次。
word出现了1次。
occurrences出现了1次。
It出现了1次。
good出现了1次。
idea出现了1次。
to出现了1次。
have出现了1次。
some出现了1次。
examples出现了1次。
testing出现了1次。

示例二:统计一段代码中各个关键字出现的次数

string s = @"using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(""Hello world!"");
            Console.ReadKey();
        }
    }
}";
Dictionary<string, int> count = new Dictionary<string, int>();
MatchCollection matches = Regex.Matches(s, @"\busing\b|\bnamespace\b|\bclass\b|\bstatic\b|\bvoid\b|\bstring\b|\bint\b|\bbool\b|\bif\b|\belse\b|\bfor\b|\bwhile\b|\breturn\b|\bnew\b|\bConsole\b|\bWriteLine\b|\bReadKey\b");
foreach (Match match in matches)
{
    string keyword = match.Value;
    if (count.ContainsKey(keyword))
    {
        count[keyword]++;
    }
    else
    {
        count[keyword] = 1;
    }
}
foreach (KeyValuePair<string, int> pair in count)
{
    Console.WriteLine("{0}出现了{1}次。", pair.Key, pair.Value);
}

运行结果如下:

using出现了4次。
System出现了4次。
Collections出现了1次。
Generic出现了1次。
Linq出现了1次。
Text出现了1次。
namespace出现了1次。
class出现了1次。
Program出现了1次。
static出现了1次。
void出现了1次。
string出现了1次。
int出现了1次。
bool出现了1次。
if出现了1次。
else出现了1次。
for出现了1次。
while出现了1次。
return出现了1次。
new出现了1次。
Console出现了2次。
WriteLine出现了1次。
ReadKey出现了1次。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net 计算字符串中各个字符串出现的次数 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • 如何使用C# 捕获进程输出

    下面是使用C#捕获进程输出的完整攻略: 1. 准备工作 首先,需要准备好使用C#编写程序的开发环境,比如Visual Studio。然后,还需要了解C#中Process类的用法,Process类提供了与操作系统进程的交互功能,可以用来启动、停止、监控其他进程。 2. 启动进程并捕获输出 使用Process类启动一个进程后,可以通过StandardOutput…

    C# 2023年6月6日
    00
  • 详解c# AutoMapper 使用方式

    详解c# AutoMapper 使用方式 什么是AutoMapper? AutoMapper是一个C#库,用于对象之间的映射(mapping)。当我们需要将一个对象(Source)的属性值映射到另一个对象(Target)时,AutoMapper可以帮助我们快速而简便地完成这项工作,而无需手动写出大量的赋值表达式。 安装AutoMapper 可以通过NuGet…

    C# 2023年6月1日
    00
  • C#中Quartz的使用

    安装 NuGet 包:在 Visual Studio 中打开项目,右键单击项目名称,选择“管理 NuGet 包”,搜索“Quartz”并安装。 创建作业:创建一个实现了 IJob 接口的类,该接口包含一个 Execute 方法,该方法将在作业运行时调用。例如: public class MyJob : IJob { public Task Execute(I…

    C# 2023年4月22日
    00
  • 详解 c# 克隆

    详解 C# 克隆 在 C# 中,克隆指的是创建一个新对象,这个新对象和旧对象具有相同的属性和值。为了实现克隆,我们需要使用ICloneable接口。在本文中,我们将详细讲解如何使用 C# 克隆。 ICloneable 接口 ICloenable 是 C# 中用来定义克隆能力的接口,它只包含一个方法 Clone()。当实现这个接口时,需要实现 Clone 方法…

    C# 2023年6月1日
    00
  • asp.net使用jquery模板引擎jtemplates呈现表格

    下面我将详细介绍“asp.net使用jquery模板引擎jtemplates呈现表格”的步骤及其示例。 jtemplates简介 jtemplates是一款基于jQuery的模板引擎,它可以帮助我们以非常简洁的方式生成HTML代码。它可以与jQuery非常好地集成,支持常用的语法结构。jtemplates提供了数据绑定、条件判断、循环等基本的模板引擎功能,可…

    C# 2023年5月31日
    00
  • C#运行CGI程序实例

    下面是一份详细的C#运行CGI程序的完整攻略: 简介 CGI(Common Gateway Interface)是Web服务器与应用程序之间通信的一种标准接口。C#作为一种强大的编程语言,可以通过配置IIS来实现运行CGI程序。 配置IIS 首先,在IIS中添加CGI程序的支持。 打开IIS管理器,选择对应的网站,右击“属性”选项,进入“HTTP头”标签。 …

    C# 2023年6月1日
    00
  • 详解.Net core2.0日志组件Log4net、Nlog简单性能测试

    详解.Net core2.0日志组件Log4net、Nlog简单性能测试 在.NET Core 2.0应用程序中,日志记录是一个非常重要的组件。本攻略将深入探讨.NET Core 2.0中两个流行的日志组件Log4net和Nlog,并提供两个示例说明。 Log4net Log4net是一个流行的.NET日志记录组件,它提供了灵活的配置选项和高度可定制的输出格…

    C# 2023年5月17日
    00
  • CommunityToolkit.Mvvm8.1 MVVM工具包安装引用指南(1)

      本系列文章导航 https://www.cnblogs.com/aierong/category/2297596.html     0.说明 CommunityToolkit.Mvvm包(又名MVVM 工具包,以前名为 Microsoft.Toolkit.Mvvm)是一个现代、快速且模块化的 MVVM 库。它支持:.NET Standard 2.0、 .…

    C# 2023年4月18日
    00
合作推广
合作推广
分享本页
返回顶部