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

A-03转义字符、字符串基础、String类

[转义字符]#转义符基础概述c#在处理字符串的过程中无法正确识别空格、斜杠、单、双引号等特殊字符或符号需使用转义字符才可正确读取1、c#程序中转义字符使用反斜杠“\”开头后面紧跟特殊字符或指定字母2、因为c#规定了反斜杠“\”为转义字符的标志被赋予了特殊意义所以在字符串中不可当作原本字符使用3、程序编译过程中c#会对转义字符进行实时检测当输入不符合转义规则时会直接报错格式\特殊字符或指定字母string a Hello World; //不使用转义符 string b Hello\nWorld; //使用转义符/n string b Hello\tWorld; //使用转义符/t Debug.Log(a); //输出Hello World Debug.Log(b); //输出Hello World Debug.Log(c); //输出Hello //World禁用转义c#程序中如果想在字符串中包含多个文本或禁用转义字符可在字符串前方添加“”符号- 注添加逐字标识“”的字符串会保留字符串中的缩进空格和换行符可能会意外增加字符串长度//禁用转义 Debug.Log(1\t2); //输出1 2 Debug.Log(1\t2); //输出1\t2使用禁用转义 //多行输出 string str Hello, World, 你好世界; //多行输出时会保留字符串“你好世界”前面的缩进空格 Debug.Log(str); //输出 //Hello, //World, // 你好世界#常用转义符\特殊的字符在字符串输出时输出特殊字符本身- \\在字符串输出时正确输出 \- \在字符串输出时正确输出 - \在字符串输出时正确输出 \指定的字母一般被c#赋予了特殊含义在字符串中有其他意思- \n表示换行在字符串输出时会将转义字符之后的内容换行输出- \t表示制表符在字符串输出时会在转义字符位置插入一个空白制表符相当于文本中按下Tab键[字符串基础]#字符串拼接概述字符串和字符串可直接使用加号“”拼接然后组成新的字符串1、字符串可与任意个字符串拼接不限个数2、任意值类型数据与字符串类型数据拼接结果均为字符串类型格式string 变量名 字符串1...字符串n;string a 123aaa; //字符串字符串结果为字符串 string b bbb123; //字符串数字结果为字符串 string c abccc555; //字符串变量、字符串值、数值混合相加结果为字符串 Debug.Log(a); //输出123aaa Debug.Log(b); //输出bbb123 Debug.Log(c); //输出123aaabbb123ccc555#格式化输出概述c#中可使用String.Format()方法对字符串进行格式化允许在字符串中插入变量值并以指定格式输出目标函数public static String Format(String format, params object[] args);1、调用Format()方法后会返回一个字符串作为最终结果需使用string变量接收2、参数一 format自定义的字符串输出格式参数二 args可指定不限数量个变量/实例/表达式作为插入值索引从0依次递增3、自定义字符串输出格式中的索引仅代指插入值在参数列表中的位置与格式化输出的顺序无关格式string 变量名 String.Format(字符串1{目标索引}字符串2...{目标索引}字符串n,值0,值...,值n);int x 6, y 4; //正常输出 Debug.Log(两数相加xy(xy)); //输出两数相加6410 //格式化输出指定目标变量 string str1 String.Format(两数相加{1}{2}{0},(xy),x,y); //索引1、2、0 仅代指需插入的变量值在参数列表中的位置与格式化输出的顺序无关 Debug.Log(str1); //输出两数相加6410 //格式化输出指定具体的值 string str2 String.Format(两数相加{1}{2}{0},5,3,2); Debug.Log(str2); //输出两数相加325#插值输出概述字符串插值是c#6.0引入的一种更简单的字符串格式化方法允许在字符串中直接嵌入表达式1、使用字符串插值时需在字符串前方添加“$”符号作为标识2、字符串插值中可使用具体值、变量或表达式作为插值格式string 变量名 $字符串1{表达式1}字符串2...{{表达式n}字符串n;int x 6, y 4; //正常输出 Debug.Log(两数相减x-y(x-y)); //输出两数相减6-42 //插值输出插入变量 string str2 $两数相减{x}-{y}{x-y}; Debug.Log(str2); //输出两数相减6-42 //插值输出插入具体值 Debug.Log($两数相减{10}-{3}{10 - 3}); //输出两数相减10-37[String类]#string与Stringstring变量深解1、对于一个string变量变量存储的是目标字符串在内存中的引用不是目标字符串本身2、变量名对应的目标字符串为string类型的实例对象是一个文本3、c#中每个文本在内部被表示为一个只读的char对象序列String类c#的内置类是System命名空间的一部分封装了字符串数据并提供了一系列的方法和属性来处理这些数据string、String关联c#中string关键字是String类的别名因此String与string等效String类中定义的属性、索引器、方法string变量也可正常使用#属性与索引器属性Length可获取字符串的长度返回int型数值- 格式int 变量名 字符串变量.Length;string aaa abcd; int b aaaa.Length; //b4获取字符串a的长度为4索引器[索引值]可访问字符串中“索引值”位置的字符返回char型数据1、字符串的索引值从0开始然后依次递增2、使用索引器访问字符串时最小索引值为0最大索引值为 字符串长度-13、因为字符串为只读的char对象序列所以只可通过索引器获取目标位置的字符不可进行修改- 格式char 变量名 字符串变量[索引值];string aaa abcd; char c1 aaa[0]; //ba字符串a索引0位置的字符为a char c2 aaa[3]; //bd字符串a索引3位置的字符为d#实例方法使用格式数据类型 变量名 字符串变量.方法名(参数列表);方法-判断- Equals(string str)return bool判断当前字符串与指定字符串是否相同string a abcdefg; bool isEquals a.Equals(abc); //bfalse字符串a不等于字符串abc方法-查询- Contains(string str)return bool判断字符串中是否包含指定的子字符串string str Hello, World!; bool contains str.Contains(World); //输出: true当前字符串中包含子字符串World- IndexOf(char value/string value)return int查找某一字符/子字符串在字符串中首次出现的位置string str aaa bbb ccc ddd eee; int a str.IndexOf(b); //a4字符b在当前字符串中第一次出现的位置索引为4 int b str.IndexOf(ccc); //b8字符串ccc在当前字符串中第一次出现的位置索引为8方法-删减- Trim(null/params char[] trimChars)return string移除当前字符串中的前导和后置空格或指定字符a、当参数列表为空时移除字符串的前导和后置空格字符串中间的空格会被保留b、当参数列表指定具体字符时移除字符串中的前导和后置目标字符string aaa a b c ; //默认长度7 //移除字符串的前导和后置空格 string a aaa.Trim(); Debug.Log(a.Length); //移除空格后长度5仅移除字符串中前导和后置空格 //移除字符串中的前导和后置目标字符 string bbb _a_b_c_; bbb bbb.Trim(_); Debug.Log(bbb); //输出a_b_c //组合移除字符串的前导和后置目标字符 string ccc _ a_b c __; ccc ccc.Trim(_, ); Debug.Log(ccc); //输出a_b c- Remove(int startIndex/int startIndex, int count)return string移除字符串中指定区域的字符a、单个参数移除字符串中索引位置startIndex及以后的所有字符b、双参数将字符串中从索引位置startIndex开始的count个字符移除string str aaabbb; //单一参数 string aaa str.Remove(3); //移除字符串中索引位置3及以后的所有字符 Debug.Log(aaa); //输出aaa //双参数 string bbb str.Remove(2,3); //将字符串中从索引位置2开始的3个字符移除 Debug.Log(bbb); //输出aab方法-替换- Replace(string str1,string str2)return string把指定字符串str1替换为新的字符串str2注需区分大小写string str aaa bbb ccc ddd eee; str str.Replace(ccc,zzz); Debug.Log(str); //输出aaa bbb zzz ddd eee方法-插入- Insert(int index,string str)return string在当前字符串中插入一个目标字符串到指定位置string str aaabbb; string aaa str.Insert(3, ); Debug.Log(aaa); //输出aaa bbb方法-截取- Substring(int startIndex/int startIndex, int length)return string在当前字符串中从指定位置截取一段字符串并返回a、单个参数从索引位置startIndex开始截取到字符串末尾的所有字符b、双参数从索引位置startIndex开始截取字符串中length个长度的字符并组成新字符串c、注开始截取的索引值startIndex 截取长度length需当前字符串长度Lengthstring text Hello, World!; //单个参数 string aaa text.Substring(7); //从索引位置7开始截取到字符串末尾的所有字符 Debug.Log(aaa); //输出World! //双参数 string bbb text.Substring(2,8); //从索引位置2开始截取字符串中8个长度的字符 Debug.Log(bbb); //输出llo, wor方法-分割- Split(char split)return string[]将当前字符串按指定字符分割成一个新的字符串数组string str aaa bbb ccc ddd eee; string[] words str.Split( ); foreach (string wo in words) { Debug.Log(wo); //依次输出aaa bbb ccc ddd eee }不常用方法仅作介绍无实例演示1、TrimStart()return string移除字符串中的前导空格字符串中间的空格会被保留2、TrimEnd()return string移除字符串中的后置空格字符串中间的空格会被保留3、ToUpper()return string将字符串中的所有字母转大写4、ToLower()return string将字符串中的所有字母转小写5、LastIndexOf(char值/string值)return int查找某一字符/字符串在字符串中最后一次出现的位置6、StartsWith(string str)return bool判断字符串是否以指定的子字符串开始7、EndsWith(string str)return bool判断字符串是否以指定的子字符串结束8、PadLeft(int totalWidth/int totalWidth, char paddingChar)return string在当前字符串的左侧添加空格/指定字符paddingChar使当前字符串达到目标长度totalWidth9、PadRight(int totalWidth/int totalWidth, char paddingChar)return string在当前字符串的右侧添加空格/指定字符paddingChar使当前字符串达到目标长度totalWidth10、ToCharArray(null/int startIndex, int length)return char[]将当前字符串中的指定字符复制到char数组a、如果参数列表无参数复制当前字符串中的所有字符b、如果有参数参数一 startIndex开始复制的索引位置参数二 length需复制的字符长度c、注开始复制的索引位置startIndex 复制的长度length需当前参数的长度Length11、CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count)将当前字符串的一部分复制到指定的字符数组中a、参数一 sourceIndex从当前字符串的索引位置sourceIndex处开始复制b、参数二 destination需复制到的目标字符数组c、参数三 destinationIndex在字符数组中开始粘贴的位置d、参数四 count需要粘贴到字符数组中的字符个数#静态方法使用格式数据类型 变量名 String.方法名(参数列表);方法-判断- IsNullOrEmpty(string str)return bool判断目标字符串是否为空- Equals(string str1, string str2)return bool判断两个目标字符串是否相同string str aaabbb; //判断目标字符串是否为空 bool aaa String.IsNullOrEmpty(str); Debug.Log(aaa); //输出false //判断两个目标字符串是否相同 bool bbb String.Equals(str, aaabbb); Debug.Log(bbb); //输出true方法-拼接- Concat(params String[] values)return string拼接多个子字符串并返回一个新字符串- Join(string str,string[] strs)return string使用指定分割符连接一个字符串数组的所用元素并返回一个新字符串//多个字符串拼接 string str1 String.Concat(a,b,c,d); Debug.Log(str1); //输出abcd //使用指定字符连接字符串数组 string[] strs {a,b,c,d}; string str2 String.Join(_,strs); Debug.Log(str2); //输出a_b_c_d方法-格式化- Format(String format, params object[] args)return string自定义一个字符串输出格式并将最终结果作为字符串返回a、参数一 format自定义的字符串输出格式b、参数二 args参数数组可指定不限数量个变量/实例/表达式作为插入值c、具体使用参考[字符串基础] - # 格式化输出

相关文章:

A-03转义字符、字符串基础、String类

[转义字符]# 转义符基础概述:c#在处理字符串的过程中,无法正确识别空格、斜杠、单、双引号等特殊字符或符号,需使用转义字符才可正确读取1、c#程序中,转义字符使用反斜杠“\”开头,后面紧跟特殊字符或指定字母2、因为c…...

pgBackRest 已死。接下来怎么办?

pgBackRest 已死。接下来怎么办? ** 摘要:** 本文宣布了 pgBackRest 的终止运营。pgBackRest 是顶级的 PostgreSQL 备份工具,在经过十三年的开发后,由唯一的维护者 David Steele 宣布停止维护。本文探讨了该项目终止的原因&#…...

控制权之争:从 Workflow 到 Claude Skills,AI 正在进入「执行契约时代」

读:本文作为《LLM进化史》三部曲终章,让我们看穿AI世界层出不穷的新概念背后的真正本质——所有技术演进,其实都是围绕"谁来决定AI的行为"这一核心问题展开的控制权之争。一、AI圈最大的幻觉:每天都在诞生新技术图&…...

基于改进粒子群模糊PID的颗粒烤炉温度控制【附代码】

✅ 博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。 ✅ 如需沟通交流,扫描文章底部二维码。(1)基于改进天牛须搜索的模糊PID参数初始化:颗粒烤炉…...

发明vibe coding这个词的人说“从没感觉自己这么落后过”

发明vibe coding这个词的人说“从没感觉自己这么落后过” ⛳️ Karpathy 最近在2026年AI Ascent大会与红杉资本合伙人访谈中里说了一句话: 「我作为程序员,从来没感觉自己这么落后过。」 🔗访谈连接:https://www.youtube.com/wa…...

QKeyMapper:重新定义你的Windows操作体验,免费开源按键映射终极方案

QKeyMapper:重新定义你的Windows操作体验,免费开源按键映射终极方案 【免费下载链接】QKeyMapper [按键映射工具] QKeyMapper,Qt开发Win10&Win11可用,不修改注册表、不需重新启动系统,可立即生效和停止。支持游戏手…...

生成器不是性能银弹:什么时候该用 `yield` 省内存,什么时候它会拖慢 Python 数据处理吞吐?

生成器不是性能银弹:什么时候该用 yield 省内存,什么时候它会拖慢 Python 数据处理吞吐? 在 Python 编程里,生成器常被描述成一种“优雅又高效”的工具。它懒加载、按需计算、不一次性占用大量内存,尤其适合处理大文件…...

SharpKeys键盘重映射工具:彻底解决Windows按键布局烦恼的5个实用场景

SharpKeys键盘重映射工具:彻底解决Windows按键布局烦恼的5个实用场景 【免费下载链接】sharpkeys SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other key. 项目地址: https://gitcode.com/gh_mirrors/sh/sh…...

虚拟线程CPU绑定率飙升87%?Java 25 Scheduler Tuning Checklist,90%团队漏配的3个关键参数

更多请点击: https://intelliparadigm.com 第一章:Java 25虚拟线程调度机制演进与性能危机溯源 Java 25 将虚拟线程(Virtual Threads)从预览特性正式纳入标准运行时,并重构了ForkJoinPool与CarrierThread的协同调度模…...

Python 性能分析实战:接口从 50ms 飙到 500ms,我会先查什么?

Python 性能分析实战:接口从 50ms 飙到 500ms,我会先查什么? Python 很优雅,但优雅不等于天然高性能。真正成熟的 Python 编程,不是看到慢就立刻改代码,而是先问一句:慢在哪里?CPU、…...

在Windows上无缝安装Android应用:APK Installer的革新之路

在Windows上无缝安装Android应用:APK Installer的革新之路 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾想过,为什么在Windows上运行…...

个性化AI推理技术:如何实现用户偏好精准对齐

1. 项目背景与核心挑战社交推理类AI产品近年来呈现爆发式增长,从早期的简单问答机器人发展到如今能够进行多轮复杂对话的智能体。但在实际应用中,我们经常遇到这样的困境:同一个AI模型,有些用户觉得"太啰嗦"&#xff0c…...

C盘告急别慌!保姆级教程:用WSL2自带命令把Ubuntu搬到D盘(附默认用户修复)

C盘空间告急?WSL2迁移至D盘的完整解决方案与深度优化指南 每次打开资源管理器看到C盘那刺眼的红色警告条,心跳是不是都会漏跳一拍?作为Windows开发者,我们既依赖WSL2带来的Linux开发便利,又苦于它不断蚕食宝贵的C盘空间…...

WAM-202602:DreamZero

WAM-202602:DreamZero...

分布式链路追踪核心原理与Go Web服务集成实践

1. 项目概述与核心价值最近在排查一个线上服务的性能瓶颈时,我又一次用到了User1334/Trace这个工具。说实话,在分布式系统和微服务架构成为主流的今天,一个请求从用户端到数据库,中间可能穿越十几个甚至几十个不同的服务节点。当这…...

别再手动算日期了!用C语言实现BCD码与十进制互转(附完整代码)

嵌入式开发中的BCD码高效转换实战指南 在汽车电子和物联网设备的开发中,实时时钟(RTC)模块输出的日期时间数据往往采用BCD码格式。我曾在一个车载信息娱乐系统项目中,因为对BCD码处理不当导致仪表盘时间显示错误,花了整…...

从‘开口三角’到系统接地:手把手教你分析PT在单相接地故障时的电压变化

从‘开口三角’到系统接地:手把手教你分析PT在单相接地故障时的电压变化 在变电站日常运维中,电压互感器(PT)的开口三角电压监测是判断系统接地故障的"晴雨表"。当中性点接地方式不同的电力系统发生单相接地时&#xff…...

四旋翼无人机自适应控制:RAPTOR框架解析与实践

1. 项目背景与核心价值四旋翼飞行器的控制策略一直是无人机领域的核心挑战。传统PID控制器虽然结构简单,但在面对复杂环境扰动、负载变化或模型不确定性时,往往需要频繁手动调参。我在实际工程中遇到过多次这样的场景:同一套参数在实验室表现…...

终极指南:如何用开源工具SubtitleOCR实现10倍速硬字幕提取

终极指南:如何用开源工具SubtitleOCR实现10倍速硬字幕提取 【免费下载链接】SubtitleOCR 快如闪电的硬字幕提取工具。仅需苹果M1芯片或英伟达3060显卡即可达到10倍速提取。A very fast tool for video hardcode subtitle extraction 项目地址: https://gitcode.co…...

通过Taotoken CLI工具一键配置团队开发环境

通过Taotoken CLI工具一键配置团队开发环境 1. 安装Taotoken CLI工具 Taotoken CLI工具提供两种安装方式,适用于不同使用场景。对于需要频繁使用CLI的团队技术负责人,推荐全局安装: npm install -g taotoken/taotoken对于临时性使用或希望…...

RePKG深度指南:5分钟掌握Wallpaper Engine资源提取与转换

RePKG深度指南:5分钟掌握Wallpaper Engine资源提取与转换 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 想要解锁Wallpaper Engine壁纸引擎的全部潜力吗?Re…...

3个步骤彻底掌控你的华硕笔记本:G-Helper终极优化指南

3个步骤彻底掌控你的华硕笔记本:G-Helper终极优化指南 【免费下载链接】g-helper G-Helper is a fast, native tool for tuning performance, fans, GPU, battery, and RGB on any Asus laptop or handheld - ROG Zephyrus, Flow, Strix, TUF, Vivobook, Zenbook, P…...

华硕笔记本终极性能优化指南:5个G-Helper核心功能全面解析

华硕笔记本终极性能优化指南:5个G-Helper核心功能全面解析 【免费下载链接】g-helper G-Helper is a fast, native tool for tuning performance, fans, GPU, battery, and RGB on any Asus laptop or handheld - ROG Zephyrus, Flow, Strix, TUF, Vivobook, Zenboo…...

NNCF实战:深度学习模型量化与剪枝,实现边缘部署3倍加速

1. 项目概述:神经网络压缩框架的实战价值如果你正在为深度学习模型在边缘设备上的部署而头疼,觉得模型太大、推理太慢、功耗太高,那么NNCF这个工具很可能就是你一直在找的解决方案。NNCF,全称Neural Network Compression Framewor…...

Vibe Project:为AI Agent设计的开发环境模板,提升人机协作效率

1. 项目概述:Vibe Project,一个为AI时代重构的开发起点如果你和我一样,在过去一年里深度使用了Claude Code、Cursor或者GitHub Copilot,那你一定经历过这种“冰火两重天”的体验:一方面,AI助手确实能帮你快…...

基于Astro与Tailwind CSS构建家庭协作餐食规划系统

1. 项目概述:一个为家庭协作烹饪而生的智能周度餐食规划系统如果你和我一样,家里有5口人,每天下班后还要面对“今晚吃什么”的灵魂拷问,以及随之而来的混乱采购和厨房分工问题,那你一定能理解一个高效、清晰的餐食规划…...

量子计算如何革新数据库查询优化

1. 量子计算与数据库优化的跨界碰撞当我在2019年第一次看到量子计算机在数据库查询优化上的实验数据时,手里的咖啡杯差点没拿稳——一个百万级数据表的复杂查询,传统优化器需要47分钟,而量子算法仅用28秒就给出了最优执行方案。这种数量级的性…...

终极指南:3步快速掌握MapleStory WZ文件编辑与地图制作

终极指南:3步快速掌握MapleStory WZ文件编辑与地图制作 【免费下载链接】Harepacker-resurrected All in one .wz file/map editor for MapleStory game files 项目地址: https://gitcode.com/gh_mirrors/ha/Harepacker-resurrected Harepacker-resurrected …...

CompACT图像分词器:提升机器人规划效率的离散编码方案

1. 项目背景与核心价值 在计算机视觉与自然语言处理的交叉领域,图像分词(Image Tokenization)一直是连接视觉与语义的关键桥梁。传统基于CNN或ViT的连续向量表示方式虽然表现优异,但在需要精确空间规划的视觉推理任务(…...

终极指南:如何在Blender中快速创建VR角色模型

终极指南:如何在Blender中快速创建VR角色模型 【免费下载链接】VRM-Addon-for-Blender VRM Importer, Exporter and Utilities for Blender 2.93 to 5.1 项目地址: https://gitcode.com/gh_mirrors/vr/VRM-Addon-for-Blender 你是否曾经因为3D模型格式不兼容…...