You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C#中仅使用System命名空间,如何根据起始字符统计指定单词的字符数?

解决C#仅用System命名空间处理字符串的问题

嘿,刚好我之前也处理过类似的需求,咱们一步步来搞定:

一、实现你的核心需求

你的思路完全没问题——拆分单词、筛选符合开头字符的单词、统计后续字符数。因为要求仅用System命名空间,咱们用string自带的方法就能搞定,不需要额外依赖。

代码实现

using System;

class StringProcessor
{
    static void Main()
    {
        string input = "the weather outside is beautiful";
        char targetStartChar = 'o';
        
        // 拆分字符串为单词数组(自动忽略多余空格)
        string[] words = input.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);
        
        // 找到以目标字符开头的唯一单词(假设输入中只有一个符合项)
        string targetWord = Array.Find(words, word => word.StartsWith(targetStartChar.ToString(), StringComparison.OrdinalIgnoreCase));
        
        if (targetWord != null)
        {
            // 起始字符后的字符数 = 单词总长度 - 1(减去开头的目标字符)
            int charCount = targetWord.Length - 1;
            Console.WriteLine($"找到的单词:{targetWord},起始字符后的字符数:{charCount}");
            // 示例输出:找到的单词:outside,起始字符后的字符数:6
        }
        else
        {
            Console.WriteLine($"没有找到以'{targetStartChar}'开头的单词");
        }
    }
}

代码说明

  • 用Split时加上StringSplitOptions.RemoveEmptyEntries,能避免输入有多个连续空格时产生空字符串元素;
  • Array.Find适合定位唯一符合条件的单词,如果可能有多个匹配项,可以改用Array.FindAll批量处理;
  • StartsWith里的StringComparison.OrdinalIgnoreCase是为了不区分大小写,要是需要严格匹配,去掉这个参数就行;
  • 不需要额外遍历到空格——拆分后得到的已经是独立单词,直接用长度减1就能得到起始字符后的字符数,高效又简洁。

二、关于统计字符串中某个单词字符数的通用方法

C#里没有专门的“统计指定单词字符数”的内置方法,但因为单词本身就是string类型,只要你能定位到目标单词,直接用word.Length就能得到它的字符数。

如果需要更通用的场景,比如从任意字符串中定位单词并统计长度,可以试试这两种思路:

  1. 拆分字符串找单词(就是上面代码里的方式);
  2. 用IndexOf定位单词起始位置再计算(适合不想拆分整个字符串的情况):
string input = "the weather outside is beautiful";
string targetWord = "outside";

int wordStartIndex = input.IndexOf(targetWord, StringComparison.OrdinalIgnoreCase);
if (wordStartIndex != -1)
{
    int wordLength = targetWord.Length;
    Console.WriteLine($"单词'{targetWord}'的字符数是:{wordLength}");
}

要是你想问的是统计单词中某个特定字符的出现次数,可以遍历字符计数:

int targetCharCount = 0;
foreach (char c in targetWord)
{
    if (c == 's') // 替换成你要统计的目标字符
    {
        targetCharCount++;
    }
}

内容的提问来源于stack exchange,提问作者Bogdan Muscari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 18:23:11