当前位置: 首页 > news >正文

判断一个字符串中排除空格和换行以外字符运行不同的逻辑

写一个C#字符串解析程序代码,逻辑是从前到后一个一个读取字符,遇到匹配空格、Tab和换行符就继续读取下一个字符,遇到大写或小写的字符a,运行方法a(),遇到大写或小写的字符b,运行方法b(),遇到大写或小写的字符c,运行方法c(),否则运行方法d()。

以下是实现该字符串解析程序的C#代码:

using System;

public class StringParser
{
    public void Parse(string input)
    {
        foreach (char c in input)
        {
            // 跳过所有空白字符(空格、Tab、换行符等)
            if (char.IsWhiteSpace(c))
            {
                continue;
            }

            // 根据字符执行对应方法(不区分大小写)
            switch (char.ToLower(c))
            {
                case 'a':
                    a();
                    break;
                case 'b':
                    b();
                    break;
                case 'c':
                    c();
                    break;
                default:
                    d();
                    break;
            }
        }
    }

    private void a()
    {
        Console.WriteLine("执行方法 a");
    }

    private void b()
    {
        Console.WriteLine("执行方法 b");
    }

    private void c()
    {
        Console.WriteLine("执行方法 c");
    }

    private void d()
    {
        Console.WriteLine("执行方法 d");
    }
}

// 使用示例
class Program
{
    static void Main()
    {
        StringParser parser = new StringParser();
        string testInput = "aB c\t\nDx";
        Console.WriteLine($"解析字符串: {testInput}");
        parser.Parse(testInput);
    }
}

代码说明:

  1. Parse方法遍历输入字符串的每个字符
  2. 使用char.IsWhiteSpace判断所有空白字符并跳过
  3. 将字符转换为小写后通过switch语句统一处理大小写
  4. 根据字符类型调用对应的私有方法
  5. 每个方法目前只是简单输出,实际使用时可以替换为具体逻辑

示例输出:

解析字符串: aB c	
Dx
执行方法 a
执行方法 b
执行方法 c
执行方法 d
执行方法 d

特点:

  • 支持全角/半角所有类型的空白字符
  • 统一处理大小写字母
  • 可扩展性强,方便添加新字符的处理方法
  • 使用面向对象设计,封装解析逻辑
http://www.dtcms.com/a/104305.html

相关文章:

  • 剑指Offer(数据结构与算法面试题精讲)C++版——day2
  • AIGC SD出图有缺陷有哪些方法可以解决?
  • nginx rewrite的相关功能
  • 算力100问☞第100问:算力竞争的关键领域?
  • 数据仓库建模-CIF方法中3NF建模的核心作用解析
  • “壹号土”和“壹号土猪”都是已注册商标!
  • MongoDB 核心机制解析
  • 深入解析力扣39.组合总和:回溯算法的妙用
  • --- 动态sql的使用 ---
  • 生成LoadX509KeyPair 需要的证书
  • <tauri><rust><GUI>基于rust和tauri,实现一个svg转png的工具
  • kettle从入门到精通 第九十四课 ETL之kettle MySQL Bulk Loader大批量高性能数据写入
  • FlutterWeb实战:02-加载体验优化
  • DPM(Defects Per Million,每百万缺陷数)和PPM(Parts Per Million,百万分之一)
  • php8属性注解使用教程
  • 前端:开源软件镜像站 / 清华大学开源软件镜像站 / 阿里云 / 网易 / 搜狐
  • leetcode22.括号生成
  • 基于yolov11的汽车损伤检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • MySql之binlog与数据恢复(Binlog and Data Recovery in MySQL)
  • STP --- 生成树协议
  • 动态规划——回文串问题
  • 第32周Java微服务入门 微服务基础
  • 【Nova UI】三、探秘 BEM:解锁前端 CSS 命名的高效密码
  • 不带头结点的单链表插入方法(头插法与尾插法)
  • 嵌入式学习笔记-FLASH,CPU,MPU,MCU,SOC,SOPC,架构,流水线,RAM和ROM,交叉编译
  • 数据治理的专题库
  • uni-app-监控网络请求 插件 - uninetconsoledayer
  • 第十章 文件和异常
  • XPath语法完全指南(实战详解版)
  • Rust闭包详解