C# 字符串各种操作

2023-05-16

C# 字符串:

  1. 字符串 转 char类型的数组
  2. 字符串 批量合成
  3. 字符串大小写转换
  4. 字符串分割
  5. 字符串替换
  6. 字符串 是否包含
  7. 字符串 比较
  8. 字符串截取
  9. 字符串 是否 以什么开头、结尾、
  10. 字符串 第一个、最后一个、
  11. 字符串 去除空格
  12. 字符串 空与null 判定
  13. 字符串 合并,以什么相隔
            string s1 = "张三";
            string s2 = "张三";
            Console.ReadKey();

            // 查看 张三的 栈、堆、都是怎样的?
            // 在Console.ReadKey();打上断点,
            // 点击调试-->窗口-->即时-->在窗口输入 &s1 回车 -->再输入&s2 回车

            // 可见以下内容
            // &s1
            // 0x00000001f097e5a8
            //    * &s1: "张三"
            // &s2
            // 0x00000001f097e5a0
            //    * &s2: "张三"

            string s = "abcdefg";
            // 字符串 转 char类型的数组
            char[] cha = s.ToCharArray();
            // 修改内容
            cha[0] = 'q';
            Console.WriteLine(cha);



            // 操作不可变类型,对同一块内存操作
            StringBuilder sb = new StringBuilder();

            // 计时器
            Stopwatch sw = new Stopwatch();
            //string str = null;  // 这样不可行
            sw.Start(); // 开始计时
            for (int i = 0; i < 10000; i++)
            {
                //str += i;       // 这样不可行
                sb.Append(i);     // 可行
            }
            sw.Stop();  // 结束计时
            // 格式转换
            Console.WriteLine(sb.ToString());
            Console.WriteLine(sw.Elapsed);  // 计时总长

            // 字符串 转 大写 或 小写
            string str1 = "CAB";
            // ToLower() 小写
            string str2 = str1.ToLower();
            Console.WriteLine(str2);
            // ToUpper() 大写
            string str3 = str2.ToUpper();
            Console.WriteLine(str3);

            // 字符串比较
            string st1 = "s1";
            string st2 = "s2";
            // 比较时,忽略大小写
            if (st1.Equals(st2, StringComparison.OrdinalIgnoreCase))
            {
                Console.WriteLine("字符串比较后是一样的");
            }
            else
            {
                Console.WriteLine("字符串比较后是不一样的");
            }

            // 字符串的分割
            string str_1 = "a b  dfd _ + = ,,, fdf";
            // 字符串黑名单
            char[] chs1 = { ' ', '_', '=', ',' };
            // 分割(若无需去除 ''空,可不加第二个参数)
            string[] str_2 = str_1.Split(chs1, StringSplitOptions.RemoveEmptyEntries);
            Console.ReadKey();
            // 断点查看

            // 字符串替换
            string str_a1 = "国家关键人物 黑呵呵";
            // 是否包含 该字符串
            if (str_a1.Contains("国家"))
            {
                // 替换 指定字符串
                str_a1 = str_a1.Replace("国家", "**");
                Console.WriteLine(str_a1);
            }

            // 截取字符串
            string str = "今天天气很晴朗,处处好风光";
            // 起点、终点、
            //str.Substring(0, str.Length - 1);
            str = str.Substring(0, str.Length - 3);
            Console.WriteLine(str);

            // 字符串 判断 是否以什么为 开头 StartsWith、结尾 EndsWith
            string str = "今天天气很晴朗,处处好风光";
            //if (str.StartsWith("今天"))
            if (str.EndsWith("今天"))
            {
                Console.WriteLine("是");
            }
            else
            {
                Console.WriteLine("否");
            }

            // 字符串 查找 第一次出现的位置
            string str = "今天天气很晴朗,处处好风光";
            // IndexOf 参数:字符、搜索的起始位置、
            int index = str.IndexOf('天', 2);
            Console.WriteLine(index);

            // 字符串 查找 最后一次出现的位置
            string str = "今天天气很晴朗,处处好风光";
            // IndexOf 参数:字符、搜索的起始位置、
            int index = str.LastIndexOf('天');
            Console.WriteLine(index);

            // 截取 + 查找 练习
            // (目的是 查找指定名称并截取,
            // 特点是目标在最后一个斜线的后面)
            string path = @"da\d\a\d堆\a\d\asd\a叠\fa\堆叠.mp4";
            // 查找
            int index = path.LastIndexOf('\\'); //两个转义字符 取消转义
            // 截取
            path = path.Substring(index + 1);
            Console.WriteLine(path);

            // 去除空格()
            string str = "    hhehehehehhehe  9  1 ";
            去除全部空格
            str = str.Trim();
            //去除前面空格
            //str = str.TrimStart();
            // 去除结尾空格
            //str = str.TrimEnd();
            Console.WriteLine(str);

            // 对null 与 空 "" 的判定
            string str = "";
            if (string.IsNullOrEmpty(str))
            {
                Console.WriteLine("是null 或者 空");
            }
            else
            {
                Console.WriteLine("不是null");
            }

            // 合并字符串 可指定用什么相隔
            string[] names = { "王一", "王二", "王三", "网四" };
            string strnew = string.Join("|", names);
            Console.WriteLine(strnew);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 字符串各种操作 的相关文章

  • 回溯算法及剪枝

    回溯算法及剪枝 理论基础模板框架实例思路 剪枝 回溯算法的本质是暴力穷举 xff0c 即使用递归控制for循环嵌套的数量 xff0c 本身不是一个高效的算法 尽管可以使用剪枝来提高效率 xff0c 但是还是改不了穷举的本质 回溯法 xff0
  • MySQL索引的底层实现原理

    索引的底层实现原理 数据库索引是存储在磁盘上的 xff0c 当数据量大时 xff0c 就不能把整个索引全部加载到内存了 xff0c 只能逐一加载每一个磁盘块 xff08 对应索引树的节点 xff09 xff0c 索引树越低 xff0c 越
  • MySQL事务

    事务概念 一个事务是由一条或者多条对数据库操作的SQL语句所组成的一个不可分割的单元 xff0c 只有当事务中的所有操作都正常执行完啦 xff0c 整个事务才会被提交给数据库 xff1b 如果有部分事务处理失败 xff0c 那么事务就要回退
  • MySQL行锁、表锁&间隙锁

    事务隔离级别的实现原理 xff1a 锁 表级锁 amp 行级锁 表级锁 xff1a 对整张表加锁 开销小 xff0c 加锁快 xff0c 不会出现死锁 xff1b 锁粒度大 xff0c 发生锁冲突的概率高 xff0c 并发度低 行级锁 xf
  • sql模糊查询多个条件写法

    单个模糊查询一般使用like xff0c 如果多个可以使用 OR 进行连接 xff0c 不过写样子写法很冗余 xff0c 而且如果多个条件是从表中 select出来的时候这种方法就不可行了 针对这种问题 xff0c 一般都提供了正则表达式的
  • Python datetime.fromtimestamp 遇到的一些坑

    背景 xff1a 调用腾讯某个接口返回的是时间戳的形式 xff0c 本地解析的时间跟腾讯端的时间不一致 xff0c 经过排查发现是本地没有转化为北京时间 xff0c 而腾讯端是默认转换为北京时间的 但是却有一个疑惑 x1f914 xff0c
  • 【ClickHouse】批量写入ClickHouse 的几种方式

    ClickHouse没有官方的Python接口 xff0c 有个第三方的库 xff0c 叫clickhouse driver xff0c 笔者所知道的将数据批量写入的方式不是很多 xff0c 这里列举最常见的3种方式 第一种方式 CSV文件
  • 【redis】redis简单操作(待更新。。)

    span class token keyword import span redis span class token comment 导入redis 模块 span pool span class token operator 61 sp
  • js--客户端存储问题

    1 sessionstorage 2 localstorage 3 例子 xff1a 存储名字 lt body gt lt input type 61 34 text 34 id 61 34 name 34 gt lt input type
  • 【Python】python操作mongo的简单示例(待更新。。)

    span class token comment usr bin python3 span span class token keyword import span pymongo myclient span class token ope
  • 【Linux】清理升级缓存以及无用包

    span class token function sudo span span class token function apt get span autoclean span class token function sudo span
  • jsp 与 servlet 之间传值

    jsp gt servlet 1 input jsp 定义name lt input type 61 34 text 34 name 61 34 cardnum 34 id 61 34 cardnum 34 gt servlet 通过获取
  • 关于oracle表空间不足原因及处理方法

    oracle表空间不足错误代码 xff1a ORA 01688 unable to extend table 等 xff1b 查看剩余表空间的大小 xff1a SELECT UPPER F TABLESPACE NAME 34 表空间名 3
  • 剪枝操作——回溯法的限界思想及其应用:圆排列问题

    我相信人都有自尊 xff0c 而尊重别人的自尊是一种及其高尚的精神 社会中有很多想不到的惨绝人寰的事情 xff0c 有时候发生到了自己身上 有时候发生在自己最亲密的人身上 有时候发生在自己周围人的身上等 这些无不露出一些类似于心理变态vs心
  • Archlinux安装(BIOS)教程

    Archlinux安装 xff08 BIOS xff09 记录一下 建议参考 xff1a ArchWiki 官方安装指导 下载镜像 官网 制作U盘启动盘 rufus 插入U盘 进入BIOS启动U盘 xff0c 选择第一个 连接wifi sp
  • 深度优先 求 图中强连通子图的个数

    说明 输入矩阵形式的图 xff0c matrix i j 值为 1 说明边 i 与边 j 相连 定义一个 visited 的 Boolean 数组 xff0c 为 true 表示此边已经访问过 算法时间复杂度 xff1a n的平方 可以优化
  • 解决办法:Ubuntu 16.04 【缺少依赖】导致出现该错误——ERROR: the following packages/stacks could not have their

    解决办法 xff1a Ubuntu 16 04 缺少依赖 导致出现该错误 ERROR the following packages stacks could not have their rosdep keys resolved to sy
  • Caused by: java.lang.NumberFormatException: For input string: “undefined“

    做的项目是前后端分离的 xff0c 刚完成一个列表功能 xff0c 写好了前端代码 xff0c 启动后端后 xff0c 前端没有报错 xff0c 但是在浏览器中控制台不印不出来 xff0c 显示如图 请求失败 xff01 xff01 xff
  • vue项目中ESLint配置

    1 Eslint是用来干嘛的 ESLint最初是由Nicholas C Zakas 于2013年6月创建的开源项目 它的目标是提供一个插件化的javascript代码检测工具 2 为什么要使用Eslint ESLint 是一个开源的 Jav
  • js--jQuery

    这里写自定义目录标题 1 js概述2 jQuery 基本使用3 常用API4 jQuery 样式操作5 jQuery效果案例下拉菜单动画都会排队 xff0c 需要stop xff08 xff09 xff0c 停止上一次动画 xff0c 执行

随机推荐