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#中处理字符串变得简单而高效。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STOP: 0x0000007B

STOP: 0x0000007B 安装电脑,提示出错,硬盘模型错误,SATA模式3种:AHCI、IDE、RAID 高级这个图好像漏了,下次补吧,就在高级里面硬盘模式修改下

echarts自定义仪表盘样式及一些属性了解

目录 一、自定义仪表盘 1.仪表盘相关 2.常用属性 (1)series (2)graphic 二、自定义仪表盘 1.基本仪表盘绘制 2.分析结构,分别绘制 (1)自定义形状 (2)仪表盘各部…

图神经网络代码学习—基本使用与分类任务

初步接触图神经网络代码 环境配置 对于在多目标跟踪中应用图匹配网络,需要学习使用GNN图神经网络,对于图神经网络的实现需要学习使用一下库和项目来进行实践。 PyG(PyTorch Geometric)是一个建立在 PyTorch 基础上的库&#xf…

操作系统:死锁与饥饿

目录 死锁概念 饥饿与饿死概念 饥饿和死锁对比 死锁类型 死锁条件(Coffman条件) 死锁恢复方法 死锁避免 安全状态与安全进程序列: 银行家算法: 死锁检测时机(了解): 死锁检测 死锁案…

SkyWalking Helm Chart 4.7.0 安装、配置

https://skywalking.apache.org/events/release-apache-skywalking-kubernetes-helm-chart-4.7.0/https://github.com/apache/skywalking-helm/tree/v4.7.0https://skywalking.apache.org/zh/2020-04-19-skywalking-quick-start/简介 skywalking 是分布式系统的 APM(Applicat…

electron 打包 webview 嵌入需要调用电脑摄像头拍摄失败问题

electron 打包 webview 嵌入需要调用电脑摄像头拍摄失败问题 这篇文章是接我cocos专栏的上一篇文章继续写的,我上一篇文章写的是 cocos 开发触摸屏项目,需要嵌入一个网页用来展示,最后通过 electron 打包成 exe 程序,而且网页里面…

嵌入式Linux应用开发中CAN通信实现

14.1 CAN介绍 14.1.1 CAN是什么? CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。最初,CAN 被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置 ECU 之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速…

Grafana功能菜单介绍

Grafana的功能菜单设计为侧边栏(sidebar)形式,可以折叠隐藏,便于我们更加专注数据的可视化。现将菜单栏各项功能进行编号讲解,如下图所示:① Grafana Logo 在这里插入图片描述 点击Grafana的logo,无论当前处于哪个页面,都会跳转回Home Page(主页)。② 新建与导入用于…

MVC基础——市场管理系统(二)

文章目录 项目地址三、Produtcts的CRUD3.1 Products列表的展示页面(Read)3.1.1 给Product的Model里添加Category的属性3.1.2 View视图里展示Product List3.2 增加Product数据(Add)3.2.1 创建ViewModel用来组合多个Model3.2.2 在_ViewImposts里引入ViewModels3.2.3 添加Add的…

前端 mp4 视频改成 m3u8 流模式

前端 mp4 视频改成 m3u8 流模式 mp4 视频的问题 1、mp4 视频通常对应一个文件,播放时需要加载全部文件,消耗网络资源。如果用户从中间某个时间访问,也会从头开始下载,浪费服务器性能。 2、mp4 视频文件容易被用户下载到本地。有…

爬虫基础之代理的基本原理

在做爬虫的过程中经常会遇到一种情况,就是爬虫最初是正常运行、正常抓取数据的,一切看起来都是那么美好,然而一杯茶的工夫就出现了错误,例如 403 Forbidden,这时打开网页一看,可能会看到“您的IP访问频率太…

如何将自己的PHP类库发布到composer仓库

将自己的 PHP 类库发布到 Composer 仓库,需要经过一系列的准备和操作步骤,以下是详细说明: 准备工作 创建类库项目:确保你的 PHP 类库项目具有清晰的目录结构,遵循 PSR-4 等 PHP 编码规范。通常,类文件应…

频道web - 性能优化之往返缓存

性能优化之往返缓存 往返缓存简介:如何验证当前页面是否有往返缓存?有哪些开发场景可以用bfcache提升性能?哪些无需关注?阻止页面进行往返缓存的行为都有哪些?1、缓存2、强制刷新3、浏览器设置4、JavaScript 代码5、网络问题6、 iframe 本身不符合 bfcache 的条件为什么会…

当前热门 DApp 模式解析:六大方向的趋势与创新

去中心化应用(DApp)随着区块链技术的不断发展,已经成为 Web3 领域的核心创新之一。与传统应用不同,DApp 通过智能合约运行在区块链上,具有去中心化、透明、安全等特点。近年来,随着用户需求的变化和技术的发…

Windows中将springboot项目运行到docker的容器中

0,先打包好项目,再启动docker 1,在Java项目根目录下创建一个名为Dockerfile的文件(没有扩展名),并添加以下内容。 # 使用OpenJDK的基础镜像 FROM openjdk:8-jdk-alpine# 设置工作目录 WORKDIR /app# 将项…

使用html 和javascript 实现微信界面功能1

1.功能说明: 搜索模块: 提供一个搜索框,但目前没有实现具体的搜索功能。 好友模块: 在左侧的“好友”部分有一个“查看好友”按钮。点击左侧的“查看好友”按钮时,会在右侧显示所有好友的列表。列表中每个好友可以点击查看详情,包…

uniapp——H5中使用富文本编辑器,如何使用。

一、插件市场 去插件市场找到这个插件https://ext.dcloud.net.cn/plugin?id14726 二、引入 找到自己项目引入 项目里面多了很多文件 三、使用 找到A页面&#xff0c;在里面引入组件 <view class"editBox"><sp-editor exportHtml"handleExpor…

前端视角下的Go语法学习:创建 Go 项目

今日话题 使用 GoLand 创建 Go 项目 作者&#xff1a; 时间&#xff1a;2024年6月20日 17时16分14秒 主线任务 一、GoLand 创建项目 1、点击 “new Project” 按钮 2、已经有下载过两个 Golang SDK 版本&#xff0c;选择版本创建即可~ 3、如果没有下载过Golang SDK&#…

使用pyinstaller打包pyqt的程序,运行后提示ModuleNotFoundError: No module named ‘Ui_main‘

环境&#xff1a;windowpython3.9pyqt6 使用pyqt UI编辑器生成了main.ui &#xff0c;main.ui编译成了Ui_main.py main.py 使用当前目录下的Ui_main.py。 打包过程没报错&#xff0c;运行报错。 错误如下: 解决方法&#xff1a;pyinstaller -Fw main.py --paths. 使…

1. 机器学习基本知识(4)——机器学习测试和验证

1.6 测试和验证 了解模型对新实例的泛化能力的唯一方法是在新实例上进行实际尝试。 一种方法是将模型部署到生产环境并监控其性能。 ​ 这种方法很有效&#xff0c;但如果模型非常糟糕&#xff0c;你的用户就会抱怨&#xff0c;所以这显然不是最好的方法。 更好的选择是将数…