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

C#字符串操作:11个必备方法全解析

一、最常用的11个字符串方法

1.IndexOf()- 查找字符位置

csharp

string str = "abcdefgabc"; Console.WriteLine(str.IndexOf("a")); // 0(首次出现位置) Console.WriteLine(str.IndexOf("h")); // -1(未找到) Console.WriteLine(str.IndexOf("bc")); // 1(子串位置) Console.WriteLine(str.IndexOf("f", 4)); // 5(从索引4开始找)

2.Contains()- 检查是否包含

csharp

Console.WriteLine(str.Contains("fg")); // True Console.WriteLine(str.Contains("he")); // False

3.ToUpper()/ToLower()- 大小写转换

csharp

Console.WriteLine("Hello".ToUpper()); // HELLO Console.WriteLine("HELLO".ToLower()); // hello

4.StartsWith()/EndsWith()- 检查开头结尾

csharp

string str2 = "张三大师傅"; Console.WriteLine(str2.StartsWith("张三")); // True Console.WriteLine(str2.EndsWith("师傅")); // True

5.IsNullOrEmpty()- 空值检查

csharp

string str3 = ""; Console.WriteLine(string.IsNullOrEmpty(str3)); // True str3 = null; Console.WriteLine(string.IsNullOrEmpty(str3)); // True str3 = " "; Console.WriteLine(string.IsNullOrEmpty(str3)); // False(有空格) // 建议用:IsNullOrWhiteSpace()

6.Equals()- 字符串比较

csharp

Console.WriteLine("abc".Equals("abc")); // True Console.WriteLine(string.Equals("ABC", "abc")); // False(区分大小写) Console.WriteLine(string.Equals("ABC", "abc", StringComparison.OrdinalIgnoreCase)); // True

7.Substring()- 截取字符串

csharp

Console.WriteLine("张三大师傅".Substring(1, 3)); // 三大师 Console.WriteLine("Hello".Substring(2)); // llo(从索引2到最后)

8.Split()- 分割字符串

csharp

string str4 = "2025/12/10"; string[] ss = str4.Split('/'); Console.WriteLine(ss[0]); // 2025 Console.WriteLine(ss[1]); // 12 Console.WriteLine(ss[2]); // 10

9.Remove()- 删除字符

csharp

Console.WriteLine("2025/12/10".Remove(1, 4)); // 2/12/10 Console.WriteLine("2025/12/10".Remove(3)); // 202(只保留前3个)

10.Concat()- 拼接字符串

csharp

Console.WriteLine(string.Concat("张三", "李四", "王五")); // 张三李四王五

11.Replace()- 替换字符

csharp

Console.WriteLine("2025/12/10".Replace("2025", "2026")); // 2026/12/10 Console.WriteLine("a b c".Replace(" ", "")); // abc

二、其他重要方法补充

12.LastIndexOf()- 从后往前找

csharp

Console.WriteLine("abcdefgabc".LastIndexOf("a")); // 7(最后出现的a)

13.Join()- 连接字符串数组

csharp

Console.WriteLine(string.Join("-", "a", "b", "c")); // a-b-c string[] arr = { "苹果", "香蕉", "橙子" }; Console.WriteLine(string.Join("、", arr)); // 苹果、香蕉、橙子

14.CopyTo()- 复制到字符数组

csharp

char[] cl = new char[15]; "2025/12/10".CopyTo(1, cl, 5, 6); // 结果:cl[5..10] = "025/12"

15.Format()- 字符串格式化

csharp

string name = "张三"; double gz = 10000; Console.WriteLine(string.Format("姓名:{0}; 工资:{1}", name, gz)); Console.WriteLine(string.Format("{0:C2}", gz)); // ¥10,000.00(货币格式) Console.WriteLine(string.Format("{0:F2}", 3.14159)); // 3.14(保留2位小数)

16.ToCharArray()- 转为字符数组

csharp

char[] chars = "Hello".ToCharArray(); foreach (char c in chars) { Console.Write(c + "-"); // H-e-l-l-o- }

三、常用方法分类总结

🔍 查找类

方法用途返回值
IndexOf()查找字符/子串首次出现位置索引值(-1为未找到)
LastIndexOf()从后往前查找索引值
Contains()检查是否包含bool

🔄 转换类

方法用途示例
ToUpper()转大写"abc"→"ABC"
ToLower()转小写"ABC"→"abc"
ToCharArray()转字符数组"Hi"→['H','i']

✂️ 截取操作类

方法用途示例
Substring()截取子串"Hello".Substring(1,3)→"ell"
Split()分割字符串"a,b,c".Split(',')→["a","b","c"]
Remove()删除部分字符"Hello".Remove(1,3)→"Ho"

🔗 连接与替换

方法用途示例
Concat()连接多个字符串Concat("a","b")→"ab"
Join()用分隔符连接数组Join("-",["a","b"])→"a-b"
Replace()替换字符/子串"abc".Replace("b","x")→"axc"

✅ 检查与比较

方法用途示例
StartsWith()是否以...开头"Hello".StartsWith("He")→true
EndsWith()是否以...结尾"Hello".EndsWith("lo")→true
Equals()比较是否相等"a".Equals("A")→false
IsNullOrEmpty()检查空或nullIsNullOrEmpty("")→true

📝 格式化类

方法用途示例
Format()格式化字符串Format("{0:C}",100)→"¥100.00"

四、快速参考表(最常用)

csharp

// 1. 查找位置 int pos = str.IndexOf("查找内容"); // 2. 检查包含 bool has = str.Contains("内容"); // 3. 大小写转换 string upper = str.ToUpper(); string lower = str.ToLower(); // 4. 检查开头结尾 bool starts = str.StartsWith("开头"); bool ends = str.EndsWith("结尾"); // 5. 空值检查 bool isEmpty = string.IsNullOrEmpty(str); bool isBlank = string.IsNullOrWhiteSpace(str); // 6. 字符串比较 bool equal = str1.Equals(str2); bool equalIgnoreCase = string.Equals(str1, str2, StringComparison.OrdinalIgnoreCase); // 7. 截取子串 string sub = str.Substring(开始位置, 长度); // 8. 分割字符串 string[] parts = str.Split(分隔符); // 9. 删除字符 string removed = str.Remove(开始位置, 删除长度); // 10. 拼接字符串 string combined = string.Concat(str1, str2, str3); // 11. 替换内容 string replaced = str.Replace("旧", "新");

五、特别提醒

易错点:

  1. IsNullOrEmpty()vsIsNullOrWhiteSpace()

    • IsNullOrEmpty(" ")False(有空格)

    • IsNullOrWhiteSpace(" ")True(更好的选择)

  2. 字符串比较

    • ==运算符:对于字符串比较内容

    • Equals()方法:更明确,可以指定比较规则

  3. Substring()索引从0开始

    csharp

    "Hello".Substring(1, 3) // "ell"(索引1开始,取3个)

性能建议:

  • 大量字符串拼接使用StringBuilder

  • 频繁查找使用Contains()IndexOf() > -1更语义化

  • 字符串比较考虑使用OrdinalOrdinalIgnoreCase提高性能


总结卡片

text

🔍 找位置:IndexOf, LastIndexOf ✅ 查包含:Contains, StartsWith, EndsWith 🔄 改格式:ToUpper, ToLower ✂️ 切分片:Substring, Split, Remove 🔗 连起来:Concat, Join, Replace 📊 比一比:Equals, Compare ⚠️ 检空值:IsNullOrEmpty, IsNullOrWhiteSpace

记住这些方法,就能应对90%的字符串操作需求! 🎯

http://www.cnnetsun.cn/news/1377.html

相关文章:

  • Spring AOP场景2——数据脱敏(附带源码)
  • linux知识点-服务相关
  • 基于springboot会议室管理系统的设计与实现-计算机毕设 附源码 30986
  • Python 第三方库的安装与卸载指南
  • 安装 rustrover ,本来一个 IDE 能实现全部能力的情况下JetBarins 搞了N个编辑器
  • RustRover 新建项目的前提之一: Install Rustup
  • brew 安装 rustup ,以及初始化 rustup default stable
  • brew 安装 restup 的全过程 rustup default stable ,以及错误
  • 通过 Brew 安装 rustup 后,要在 rustrover 配置; 以及 Brew 之后需要 source $HOME/.cargo/env
  • 被京能数智笔记播客狠狠种草!文章一键转 4 种结构化笔记,私域效率党直接封神
  • 第十四章聚类方法理论及Python实现
  • VUE快速入门
  • Ajax-快速学习
  • Incoloy 907高性能的铁镍钴基高温合金Incoloy907英科耐尔合金
  • Incoloy945镍铁铬合金Incoloy 945应用领域在‌高强度紧固件、阀门、涡轮部件‌
  • Incoloy945X(UNS N09945)镍铁铬基沉淀硬化合金Incoloy 945X合金板材 合金锻件
  • Incoloy 020是一种高性能的‌镍-铁-铬合金‌Incoloy020棒料 锻件 带材
  • 如何在GraniStudio零代码平台搭建MES的零代码生产监控看板开发?
  • 如何在GraniStudio零代码将算子封装成方法,实现封装算子功能?
  • GraniStudio零代码平台支持哪些品牌的相机?
  • GraniStudio零代码平台支持多少种厂家IO模块和IO模块型号?
  • GraniStudio零代码平台通信(如 TCP服务器 )工具支持几种?
  • GraniStudio零代码平台支持OPC协议吗?
  • GraniStudio零代码平台支持多少种数据库?分别是什么数据库?
  • 如何使用GraniStudio零代码平台类型转换算子?哪些数据类型之间可以互转?
  • GraniStudio零代码平台支持多少种处理字符串方式?分别都是使用什么方式处理?
  • C++数据结构:stack实现
  • 开源存储新变局:MinIO步入维护期后的五大替代方案深度解析
  • DAY 35 官方文档的阅读
  • condition参数