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

五、C#—字符串

🌻🌻 目录

  • 一、字符串
    • 1.1 字符类型
    • 1.2 转义字符
    • 1.3 字符串的声明及赋值
      • 1.3.1 c# 中的字符串
      • 1.3.2 声明字符串
      • 1.3.3 使用字符串
      • 1.3.4 字符串的初始化
        • 1.3.4.1 引用字符串常量之初始化
        • 1.3.4.2 利用字符数组初始化
        • 1.3.4.3 提取数组中的一部分进行初始化
      • 1.3.5 空字符串与空引用的区别
      • 1.3.6 字符串的拼接
      • 1.3.7 比较字符串的其它方法
    • 1.4 格式化字符串
      • 1.4.1 标准数值格式规范
      • 1.4.1 标准日期时间格式规范
      • 1.4.2 格式化的另外一种方法
    • 1.5 截取字符串
    • 1.6 分割字符串
    • 1.7 插入字符串
    • 1.8 删除字符串
    • 1.9 复制字符串
    • 1.10 替换字符串
    • 1.11 可变字符串类
      • 1.11.1 string创建的字符串是不可变的
      • 1.11.2 可变字符串类 StringBuilder
      • 1.11.3 StringBuilder 类常用的方法
      • 1.11.4 StringBuilder 类的使用
      • 1.11.5 字符串与可变字符串的区别

一、字符串

1.1 字符类型

何时使用字符

在这里插入图片描述
在这里插入图片描述

遇到字符 '\' 时出现的错误

在这里插入图片描述

1.2 转义字符

在这里插入图片描述

转义字符使用技巧

在这里插入图片描述

1.3 字符串的声明及赋值

1.3.1 c# 中的字符串

在这里插入图片描述

1.3.2 声明字符串

在这里插入图片描述

1.3.3 使用字符串

在这里插入图片描述

1.3.4 字符串的初始化

在这里插入图片描述
在这里插入图片描述

1.3.4.1 引用字符串常量之初始化

在这里插入图片描述
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp6
{class Program{static void Main(string[] args){String str = "时间就是金钱";Console.WriteLine(str);Console.ReadLine();}}
}
1.3.4.2 利用字符数组初始化

在这里插入图片描述

1.3.4.3 提取数组中的一部分进行初始化

在这里插入图片描述
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp6
{class Program{static void Main(string[] args){char[] array = { '时','间','就','是','金','钱'};string str = new string(array);string str2 = new string(array,4,2);Console.WriteLine(str);Console.WriteLine(str2);Console.ReadLine();}}
}

1.3.5 空字符串与空引用的区别

在这里插入图片描述

1.3.6 字符串的拼接

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

判断用户名是否存在

在这里插入图片描述

1.3.7 比较字符串的其它方法

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp6
{class Program{static void Main(string[] args){string str ="mr1";string str2 = "mr12";Console.WriteLine(string.Compare(str,str2));Console.ReadLine();}}
}

在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp6
{class Program{static void Main(string[] args){string str ="mr1";string str2 = "mr12";Console.WriteLine(str.CompareTo(str2));Console.ReadLine();}}
}

在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp6
{class Program{static void Main(string[] args){string str ="mr1";string str2 = "mr12";Console.WriteLine(str.Equals(str2));Console.ReadLine();}}
}

1.4 格式化字符串

在这里插入图片描述

1.4.1 标准数值格式规范

在这里插入图片描述

在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp6
{class Program{static void Main(string[] args){Console.WriteLine("货币形式:{0:C}",365);Console.WriteLine("科学计数法:{0:E}",12);Console.WriteLine("货币形式:{0:N}",36534);Console.WriteLine("Π取两位小数:{0:F2}",Math.PI);Console.WriteLine("16进制显示:{0:X4}",36);Console.WriteLine("百分比显示:{0:P}",0.99);Console.ReadLine();}}
}

1.4.1 标准日期时间格式规范

在这里插入图片描述

1.4.2 格式化的另外一种方法

在这里插入图片描述

1.5 截取字符串

从身份证中获取出生日期

在这里插入图片描述在这里插入图片描述在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp7
{class Program{static void Main(string[] args){string fileName = "glorysoft.com";string file = fileName.Substring(0, fileName.IndexOf('.'));string fileT = fileName.Substring(fileName.IndexOf('.'));Console.WriteLine(file);Console.WriteLine(fileT);Console.ReadLine();}}
}

索引或者长度超出字符串范围得错误

在这里插入图片描述

1.6 分割字符串

在这里插入图片描述
在这里插入图片描述

限定分割次数

在这里插入图片描述

限定分割次数得执行效果

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp7
{class Program{static void Main(string[] args){string fileName = "glorysoft.com.com.com";string[] array = fileName.Split(new char[] { '.' },2);for (int i = 0; i < array.Length; i++) {Console.WriteLine(array[i]);}Console.ReadLine();}}
}

1.7 插入字符串

在这里插入图片描述
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp8
{class Program{static void Main(string[] args){string old = "you are a pig";Console.WriteLine(old);string newOld = old.Insert(8, "to");Console.WriteLine(newOld);Console.ReadLine();}}
}

1.8 删除字符串

在这里插入图片描述

在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp8
{class Program{static void Main(string[] args){string old = "you are a pig";Console.WriteLine(old);string newOld = old.Remove(4);string newOld2 = old.Remove(4,7);Console.WriteLine(newOld);Console.WriteLine(newOld2);Console.ReadLine();}}
}

1.9 复制字符串

在这里插入图片描述

复制字符串的一部分

在这里插入图片描述

1.10 替换字符串

在这里插入图片描述

替换字符串中的字符

在这里插入图片描述

替换字符串中的子字符串

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp8
{class Program{static void Main(string[] args){string str = "馒头一文一个";Console.WriteLine(str);string str2 = str.Replace("一", "壹");string str3 = str.Replace("馒头","馍馍");Console.WriteLine(str2);Console.WriteLine(str3);Console.ReadLine();}}
}

替换字符串需要注意的事项

在这里插入图片描述

1.11 可变字符串类

1.11.1 string创建的字符串是不可变的

在这里插入图片描述

1.11.2 可变字符串类 StringBuilder

在这里插入图片描述

定义:

在这里插入图片描述

1.11.3 StringBuilder 类常用的方法

在这里插入图片描述

1.11.4 StringBuilder 类的使用

在这里插入图片描述
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp8
{class Program{static void Main(string[] args){StringBuilder sb = new StringBuilder("(),(),(),4, 6, 7、8)");Console.WriteLine(sb);sb.Remove(0, 9);sb.Insert(0,"(门前大桥下),(游过一群鸭),(快来快来数一数),");Console.WriteLine(sb);Console.ReadLine();}}
}

1.11.5 字符串与可变字符串的区别

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp8
{class Program{static void Main(string[] args){long start = DateTime.Now.Millisecond;string a = "";for (int i = 0; i <= 10000; i++) {a += i;}long end = DateTime.Now.Millisecond;Console.WriteLine(end - start);StringBuilder sb = new StringBuilder();long start1 = DateTime.Now.Millisecond;for (int j=0; j < 10000;j++) {sb.Append(j);}long end2 = DateTime.Now.Millisecond;Console.WriteLine(end2-start1);Console.ReadLine();}}
}

相关文章:

五、C#—字符串

&#x1f33b;&#x1f33b; 目录 一、字符串1.1 字符类型1.2 转义字符1.3 字符串的声明及赋值1.3.1 c# 中的字符串1.3.2 声明字符串1.3.3 使用字符串1.3.4 字符串的初始化1.3.4.1 引用字符串常量之初始化1.3.4.2 利用字符数组初始化1.3.4.3 提取数组中的一部分进行初始化 1.3.…...

【Vue3 源码解析】nextTick

nextTick 是 Vue 3 中用于异步执行回调函数的函数&#xff0c;它会将回调函数延迟到下一个微任务队列中执行。其中&#xff0c;Vue 更新 DOM 是异步的。下面是对 nextTick 函数的详细解释&#xff1a; export function nextTick<T void, R void>(this: T,fn?: (this:…...

基于ModebusRTU通信采集温度湿度项目案例

目录 一、模拟温湿度模拟 【1.1】温湿度仪表参数 【1.1】使用电脑模拟传感器 【1.2】使用Codesys软件模拟传感器 二、自定义控件UI设计 【2.1】自定义控件温度湿度柱状设计 ​编辑 【2.1.1】设置温度湿度柱状实际显示【属性】 【2.1.2】设置温度湿度柱状的背景颜色【属…...

【已解决】关于如何将Doccano标注的文本转换成NER模型可以直接处理的CoNLL 2003格式

笔者要做命名实体识别&#xff08;NER&#xff09;的工作&#xff0c;选择了Doccano平台来进行文本标注。 Doccano平台对标注结果的导出格式是JSONL格式&#xff0c;我们导出了NER.jsonl文件。 但是用python语言搭建深度学习模型来实现NER时&#xff0c;一般接收的输入数据格式…...

网络编程day03(UDP中的connect函数、tftp)

今日任务&#xff1a;tftp的文件上传下载&#xff08;服务端已经准备好&#xff09; 服务端&#xff08;已上传&#xff09; 客户端&#xff1a; 代码&#xff1a; #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/types.h…...

flarum 论坛 User Statistics插件修改

此插件在中国使用日期不是很理想&#xff0c;于是决定修改代码 下面是插件信息&#xff1a; User Statistics A Flarum extension. Add some user statistics in flarum posts, this extension require clarkwinkelmann/flarum-ext-likes-received and will be installed au…...

阿里云产品试用系列-容器镜像服务 ACR

阿里云容器镜像服务&#xff08;简称 ACR&#xff09;是面向容器镜像、Helm Chart 等符合 OCI 标准的云原生制品安全托管及高效分发平台。 ACR 支持全球同步加速、大规模/大镜像分发加速、多代码源构建加速等全链路提效&#xff0c;与容器服务 ACK 无缝集成&#xff0c;帮助企业…...

Langchain里的“记忆力”,让AI只记住有用的事

今天要讲以下内容&#xff1a; 1.ConversationBufferWindowMemory&#xff1a;基于一个固定长度的滑动窗口的“记忆”功能 2.ConversationSummaryMemory&#xff1a;总结对话“记忆”功能 3.ConversationSummaryBufferMemory&#xff1a;上面两个的结合&#xff0c;超过一定…...

从零开始的LINUX(一)

LINUX本质是一种操作系统&#xff0c;用于对软硬件资源进行管理&#xff0c;其管理的方式是指令。指令是先于图形化界面产生的&#xff0c;相比起图形化界面&#xff0c;指令显然更加难以理解&#xff0c;但两者只是形式上的不同&#xff0c;本质并没有区别。 简单的指令&…...

CH34X-MPHSI高速Master扩展应用—I2C设备调试

一、前言 本文介绍&#xff0c;基于USB2.0高速USB转接芯片CH347&#xff0c;配合厂商提供的USB转MPHSI&#xff08;Multi Protocol High-Speed Serial Interface&#xff09;Master总线驱动&#xff08;CH34X-MPHSI-Master&#xff09;为系统扩展I2C总线的用法&#xff0c;除…...

记一次正式环境升级docker服务基础进行版本异常

因为服务的httpd和tomcat基础镜像版本比较旧&#xff0c;漏洞多&#xff0c;需要升级至最新版本。在本地环境和测试环境都是直接将dockerfile中的FROM基础镜像升级至最新&#xff1a; httpd&#xff1a;由httpd:2.4.52-alpine升级至httpd:2.4.57 tomcat&#xff1a;由4年前的…...

leetcode面试经典150题第一弹(一)

leetcode面试经典150题第一弹 一、合并俩个有序数组(难度&#xff1a;简单) 题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并…...

VME-7807RC-414001 350-93007807-414001 VMIVME-017807-411001 VMIVME-017807-414001

VME-7807RC-414001 350-93007807-414001 VMIVME-017807-411001 VMIVME-017807-414001 由于第12代英特尔酷睿处理器的16核/24线程配置&#xff0c;Nuvo-9000型号与之前的平台相比&#xff0c;性能大幅提升。它们还支持新的DDR5内存标准&#xff0c;以获得更多内存带宽&#xf…...

01-Zookeeper特性与节点数据类型详解

上一篇&#xff1a; 在了解Zookeeper之前&#xff0c;需要对分布式相关知识有一定了解&#xff0c;什么是分布式系统呢&#xff1f;通常情况下&#xff0c;单个物理节点很容易达到性能&#xff0c;计算或者容量的瓶颈&#xff0c;所以这个时候就需要多个物理节点来共同完成某项…...

TP6 TP8 使用阿里官方OSS SDK方法

安装 composer require aliyuncs/oss-sdk-php 官网&#xff1a;GitHub - aliyun/aliyun-oss-php-sdk: Aliyun OSS SDK for PHP 二、PHP简单上传 官网教程&#xff1a;如何进行字符串上传和文件上传_对象存储 OSS-阿里云帮助中心 引入 use OSS\OssClient; use OSS\Core\OssE…...

SkyWalking分布式链路追踪学习

为什么要用分布式链路追踪 实际生产中&#xff0c;面对几十个、甚至成百上千个的微服务实例&#xff0c;如果一旦某个实例发生宕机&#xff0c;如果不能快速定位、提交预警&#xff0c;对实际生产造成的损失无疑是巨大的。所以&#xff0c;要对微服务进行监控、预警&#xff0…...

git revert 撤销之前的提交

git revert 用来撤销之前的提交&#xff0c;它会生成一个新的 commit id 。 输入 git revert --help 可以看到帮忙信息。 git revert commitID 不编辑新的 commit 说明 git log 找到需要撤销的 commitID &#xff0c; 然后执行 git revert commitID &#xff0c;会提示如下…...

rk3568环境配置和推理报错: RKNN_ERR_MALLOC_FAIL

前言 最近在部署算法在板子侧遇到的一些问题汇总一下&#xff1a; 一、版本问题 经过测试现在将自己环境配置如下&#xff1a; 本地linux安装rknn-toolkit2-1.5.0 本地Linux使用的miniconda新建的一个python虚拟环境&#xff08;自行网上查找相关方法&#xff09; 安装好自…...

网络工程师基础笔记(一)

一、接入网 接入网&#xff0c;是指将端系统物理连接到边缘路由器的网络。 &#xff08;1&#xff09;家庭接入&#xff1a;数字用户线(DSL)、电缆、光纤到户&#xff08;FTTH&#xff09;卫星和拨号接入。 &#xff08;2&#xff09;企业&#xff08;家庭&#xff09;接入&…...

Postman应用——Headers请求头设置

文章目录 Header设置Header删除或禁用Header批量编辑Header预设添加 一般在接口需要校验签名时&#xff0c;Headers请求头用来携带签名和生成签名需要的参数&#xff0c;在Postman也可以设置请求头在接口请求时携带参数。 Header设置 说明&#xff1a; Key&#xff1a;Header…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题&#xff0c;说是客户的导入文件模版想支持部分导入内容的下拉选&#xff0c;于是我就找了easyexcel官网寻找解决方案&#xff0c;并没有找到合适的方案&#xff0c;没办法只能自己动手并分享出来&#xff0c;针对Java生成Excel下拉菜单时因选项过多导…...

react-pdf(pdfjs-dist)如何兼容老浏览器(chrome 49)

之前都是使用react-pdf来渲染pdf文件&#xff0c;这次有个需求是要兼容xp环境&#xff0c;xp上chrome最高支持到49&#xff0c;虽然说iframe或者embed都可以实现预览pdf&#xff0c;但为了后续的定制化需求&#xff0c;还是需要使用js库来渲染。 chrome 49测试环境 能用的测试…...

20250609在荣品的PRO-RK3566开发板的Android13下解决串口可以执行命令但是脚本执行命令异常的问题

20250609在荣品的PRO-RK3566开发板的Android13下解决串口可以执行命令但是脚本执行命令异常的问题 2025/6/9 20:54 缘起&#xff0c;为了跨网段推流&#xff0c;千辛万苦配置好了网络参数。 但是命令iptables -t filter -F tetherctrl_FORWARD可以在调试串口/DEBUG口正确执行。…...