C#中的string操作详解-截取、分割、连接、替换等

在C#中,string 类提供了许多用于操作字符串的方法,包括截取、分隔和连接等。以下是一些常用字符串操作的介绍和实例:

1. 截取字符串

Substring 方法

用于从字符串中截取子字符串。

语法:

//从startIndex开始截取,一直到最后
public string Substring(int startIndex);
//从startIndex开始截取,截取length个字符
public string Substring(int startIndex, int length);

实例:

string str = "Hello, World!";
string subStr1 = str.Substring(7); // "World!"
string subStr2 = str.Substring(7, 5); // "World"

在这里插入图片描述

2. 分隔字符串

Split 方法

用于将字符串分割成子字符串数组。

语法:

public string[] Split(params char[] separator);
//StringSplitOptions 枚举提供了选项来控制分割行为
public string[] Split(char[] separator, StringSplitOptions options);[Flags]
public enum StringSplitOptions
{None = 0,RemoveEmptyEntries = 1,TrimEntries = 2
}

枚举值说明
None: 使用默认选项进行分割,不移除空条目,也不修剪空白字符。
RemoveEmptyEntries: 移除结果数组中包含空字符串的元素。
TrimEntries: 修剪每个子字符串两端的空白字符。此选项在 .NET 5 及更高版本中可用。
• 如果同时指定了 RemoveEmptyEntriesTrimEntries,则只包含空白字符的子字符串也会被移除。

方法一示例:

string str = "ID,Name,Phone";
string[] parts = str.Split(','); 

方法二

示例1:默认选项 (None)

string input = "a,,b,c,,d";
string[] parts = input.Split(',');foreach (var part in parts)
{Console.WriteLine($"'{part}'");
}

在这里插入图片描述

示例 2: 移除空条目 (RemoveEmptyEntries)

string input = "a,,b,c,,d";
string[] parts = input.Split(',', StringSplitOptions.RemoveEmptyEntries);foreach (var part in parts)
{Console.WriteLine($"'{part}'");
}

在这里插入图片描述

示例 3: 移除空条目并修剪空白字符 (RemoveEmptyEntries | TrimEntries)

结合多个选项
你可以使用按位或运算符 (|) 结合多个选项。例如,StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries 将同时移除空条目并修剪空白字符。

string input = " a , , b , c , , d ";
string[] parts = input.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);foreach (var part in parts)
{Console.WriteLine($"'{part}'");
}

在这里插入图片描述

3. 连接字符串

Concat 方法

用于连接多个字符串。

语法:

public static string Concat(params string[] values);

实例:

string str1 = "Hello";
string str2 = "World";
string result = string.Concat(str1, " ", str2, "1111"); // "Hello World"

在这里插入图片描述

Join 方法

用于将字符串数组连接成一个字符串,并用指定的分隔符分隔。

语法:

public static string Join(string separator, params string[] value);

实例:

string[] parts = { "ID", "Name", "Phone" };
string result = string.Join(",", parts);

在这里插入图片描述

4. 替换字符串

Replace 方法

用于替换字符串中的字符或子字符串。

语法:

public string Replace(char oldChar, char newChar);
public string Replace(string oldValue, string newValue);

实例:

string str = "Hello, World!";
string newStr = str.Replace('!', '?'); // "Hello, World?"
string newStr2 = str.Replace("World", "C#"); // "Hello, C#!"

5. 字符串格式化

Format 方法

用于格式化字符串。

语法:

public static string Format(string format, params object[] args);

实例:

string name = "John";
int age = 30;
string result = string.Format("Name: {0}, Age: {1}", name, age); // "Name: John, Age: 30"

这些方法提供了强大的字符串操作功能,使得在C#中处理字符串变得简单而高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/488606.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

26. Three.js案例-自定义多面体

26. Three.js案例-自定义多面体 实现效果 知识点 WebGLRenderer WebGLRenderer 是 Three.js 中用于渲染场景的主要类。它支持 WebGL 渲染,并提供了多种配置选项。 构造器 new THREE.WebGLRenderer(parameters) 参数类型描述parametersObject可选参数对象&…

【IC面试问题:UCIE PHY LSM AXI Cache】

IC面试问题:UCIE PHY LSM && AXI && Cache 1 UCIE PHY LSM有几种状态? 以及L1和L2这两种低功耗状态有什么区别?2 AXI的特性? 通道之间有依赖关系吗? master和slave的valid和ready关系? 写数…

PPT技巧:将幻灯片里的图片背景设置为透明

在PPT中添加了图片,想要将图片中的背景设置为透明或者想要抠图,有什么方法吗?今天分享两个方法。 方法一: 添加图片,选中图片之后,点击【图片格式】功能,点击最左边的【删除背景】 PPT会自动帮…

池化在深度学习中增强特征的作用

目录 ​编辑 引言 池化的基本作用与特征降维 池化的定义与目的 池化操作的实现 提取关键特征与计算效率的提升 池化对特征提取的影响 平均池化的应用 提高特征鲁棒性与过拟合的防止 池化对模型鲁棒性的贡献 池化防止过拟合的原理 增强多级特征与特征表达能力的提升…

分布式 Raft算法 总结

前言 相关系列 《分布式 & 目录》《分布式 & Raft算法 & 总结》《分布式 & Raft算法 & 问题》 参考文献 《Raft一致性算法论文译文》《深入剖析共识性算法 Raft》 简介 Raft 木筏是一种基于日志复制实现的分布式容错&一致性算法。在Raft算法…

基于强化学习Q-learning算法的栅格地图路径规划算法,可以更改地图大小及起始点,可以自定义障碍物,MATLAB代码

Q-learning是一种无模型的强化学习算法,它允许智能体(agent)在与环境(environment)交互的过程中学习如何通过执行动作(actions)来最大化累积奖励(cumulative rewards)。 …

JAVA学习笔记——第十一章 枚举和注解

一、引出枚举类 1.先看一个需求demo package com.hspedu.enum_;public class Enumration01 {public static void main(String[] args) {Season Spring new Season("春天", "温暖");Season Summer new Season("夏天", "炎热");Seas…

腾讯微信Android面试题及参考答案(多张原理图)

Android 应用的启动流程如下: 当用户点击应用图标时,首先会通过 Launcher(桌面启动器)来响应这个操作。Launcher 本身也是一个 Android 应用,它运行在系统中,负责管理和显示桌面上的图标等信息。 系统会检查…

SQL server学习02-使用T-SQL创建数据库

目录 一, 使用T-SQL创建数据库 1,数据库的存储结构 2,创建数据库的语法结构 1)使用T-SQL创建学生成绩管理数据库 二,使用T-SQL修改数据库 1,修改数据库的语法结构 1)修改学生成绩管理数…

python web练习案例:基于表单类的商品管理(修改并删除商品信息)

目录 1、修改商品信息 (1)修改show.html页面,增加 修改 栏 (2)创建 update.html 网页,继承 add.html 模板 (3)定义视图函数 (4)定义路由 (5) 浏览器查看 …

前端成长之路:CSS(1)

在前端三件套中,CSS的主要是用于美化网页、进行页面布局的。 HTML的局限性 HTML是一个非常单纯的语言,它只关心内容的语义: 比如看见h1标签,就表明这是一个大标题、看见p标签,就表明这是一个段落、看见img标签&#…

【开源】基于SpringBoot框架的房屋租赁系统 (计算机毕业设计)+万字毕业论文 T020

系统合集跳转 源码获取链接 一、系统环境 运行环境: 最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 IDE环境: Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以 tomcat环境: Tomcat 7.x,8.x,9.x版本均可 操作系统…

hbuilder 本地插件配置

插件存放路径,项目根目录nativeplugins下,没有就新建。 aar文件存放路径\nativeplugins\module\android package.json存放路径\nativeplugins\module\ 配置package.json文件 { "name": "module", "id": "modu…

内圆弧转子泵绘制工具开发

接着上期的Gerotor 泵的话题继续。最近有小伙伴找我开发一个内圆弧摆线泵的计算绘制工具,也就是把上次计算绘制的过程做成一个桌面应用工具,这样用起来会更方便、效率更高。那究竟是什么样的工具呢?一起来看看: 前面不是已经有了上…

(持续更新)linux网络编程中需要注意的内核参数与网络机制

目录 零、基本说明 一、内核参数 二、相关机制 1、GRO (1)适用场景 (2)优缺点 (3)相关操作 2、Nagle 算法 (1)基本规则 (2)优缺点 (3&…

转:Quad Remesher 1.0.1使用说明(中文)

Blender 重拓扑插件,使用起来相当简单。不仅能自定义控制局部面数,还能根据不同的材质球来检测硬边进行重拓扑。 QuadRemesher2023版maya报错问题解决方案 马奇诺 编辑于 2023年05月11日 04:39 收录于文集 ChadTips_Maya 1篇 新版maya导入QuadRemes…

探索级联CMOS运算放大器的设计:提升电源抑制比(PSRR)与共模输入范围

在模拟电子学领域,运算放大器(Op Amp)作为信号放大的核心组件,其性能直接影响到整个电路的稳定性和效率。随着技术的进步,对运算放大器的性能要求也在不断提高,尤其是在电源抑制比(PSRR&#xf…

单元测试SpringBoot

添加测试专用属性 加载测试专用bean Web环境模拟测试 数据层测试回滚 测试用例数据设定

物联网中的数据收集:MQTT实现的比较

本篇论文的标题是《Data collection in IoT: A comparison of MQTT implementations》,中文可以翻译为《物联网中的数据收集:MQTT实现的比较》。论文由Erik Gustafsson和Ruben Jarefors撰写,导师是Jalal Maleki,评审员是Rita Kovo…

二叉树序列相关算法题|先序序列第k节点|满二叉树先序序列转后序序列(C)

先序序列第k节点的值 假设二叉树采用二叉链存储结构存储&#xff0c;设计一个算法&#xff0c;求先序遍历序列中第k(1<k<二叉树中的节点个数)个节点的值 算法思想 设置一个全局遍历i(初值为1)来表示进行先序遍历时&#xff0c;当前访问的是第几个节点。然后可以借用先…