字符串用于存储文本。一个字符串变量包含由双引号括起的字符集合

示例:

// 创建一个string类型的变量并赋予一个值
string greeting = "Hello";

如果需要,一个字符串变量可以包含多个单词:

示例:

string greeting2 = "Nice to meet you!";

字符串长度

在 C# 中,字符串实际上是一个对象,其中包含可以在字符串上执行某些操作的属性和方法。例如,可以使用 Length 属性找到字符串的长度:

示例:

string txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
Console.WriteLine("txt字符串的长度是:" + txt.Length);

其他方法

有许多可用的字符串方法,例如 ToUpper()ToLower(),它们分别返回字符串转换为大写或小写的副本:

示例:

string txt = "Hello World";
Console.WriteLine(txt.ToUpper()); // 输出 "HELLO WORLD"
Console.WriteLine(txt.ToLower()); // 输出 "hello world"

C# 字符串连接

字符串连接 + 运算符可用于在字符串之间进行连接。这被称为串联:

示例:

string firstName = "John ";
string lastName = "Doe";
string name = firstName + lastName;
Console.WriteLine(name);

请注意,我们在 "John" 之后添加了一个空格,以在打印时在 firstNamelastName 之间创建一个空格。

您还可以使用 string.Concat() 方法来连接两个字符串:

示例:

string firstName = "John ";
string lastName = "Doe";
string name = string.Concat(firstName, lastName);
Console.WriteLine(name);

添加数字和字符串

警告!

C# 使用 + 运算符同时进行加法和连接。

记住:数字相加,字符串连接。

如果您将两个数字相加,结果将是一个数字:

示例:

int x = 10;
int y = 20;
int z = x + y; // z 将是 30(整数/数字)

如果您将两个字符串相加,结果将是字符串连接:

示例:

string x = "10";
string y = "20";
string z = x + y; // z 将是 "1020"(一个字符串)

C# 字符串插值

字符串插值是字符串连接的另一种选择,它将变量的值替换到字符串中的占位符中。请注意,与连接不同,您无需担心空格:

示例:

string firstName = "John";
string lastName = "Doe";
string name = $"My full name is: {firstName} {lastName}";
Console.WriteLine(name);

还请注意,在使用字符串插值方法时,必须使用美元符号($)。

字符串插值是在 C# 版本 6 中引入的。

C# 访问字符串

访问字符串的字符可以通过在方括号[]内引用其索引号来实现。

示例:

string myString = "Hello";
Console.WriteLine(myString[0]); // 输出 "H"

注意:字符串索引从0开始:[0]是第一个字符,[1]是第二个字符,依此类推。

示例:

string myString = "Hello";
Console.WriteLine(myString[1]); // 输出 "e"

您还可以使用 IndexOf() 方法找到字符串中特定字符的索引位置:

示例:

string myString = "Hello";
Console.WriteLine(myString.IndexOf("e")); // 输出 "1"

另一个有用的方法是 Substring(),它从字符串中提取字符,从指定的字符位置/索引开始,并返回一个新的字符串。此方法通常与 IndexOf() 一起使用以获取特定字符的位置:

示例:

// 全名
string name = "John Doe"; // 字母D的位置
int charPos = name.IndexOf("D"); // 获取姓氏
string lastName = name.Substring(charPos); // 打印结果
Console.WriteLine(lastName);

C# 特殊字符

由于字符串必须在引号内编写,C#将误解此字符串并生成错误:

string txt = "We are the so-called "Vikings" from the north.";

避免此问题的解决方案是使用反斜杠转义字符。

反斜杠(\)转义字符将特殊字符转换为字符串字符:

转义字符 结果 描述
' ' 单引号
" " 双引号
\ \ 反斜杠

序列 " 在字符串中插入双引号:

示例:

string txt = "We are the so-called \"Vikings\" from the north.";

序列 ' 在字符串中插入单引号:

示例:

string txt = "It\'s alright.";

序列 \ 在字符串中插入单个反斜杠:

示例:

string txt = "The character \\ is called backslash.";

C#中的其他有用的转义字符包括:

代码 结果 尝试
\n 换行
\t 制表符
\b 退格

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

C# 字符串操作指南:长度、连接、插值、特殊字符和实用方法的更多相关文章

  1. Base-64 字符数组或字符串的长度无效等问题解决方案

    项目特殊需要,调用ActiveX三维控件进行控件某一特殊部位的截图操作,这个截图保存由ActiveX控件控制保存到本地是没问题的,现在需要将这个截图上传到服务器,多人共享,就牵扯到需要读取本地文件…… ...

  2. Base64 报错 的解决办法 (Base-64 字符数组或字符串的长度无效。, 输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符。)

    Base64 报错 的解决办法, 报错如下:1. FormatException: The input is not a valid Base-64 string as it contains a n ...

  3. C#编程中的Image/Bitmap与base64的转换及 Base-64 字符数组或字符串的长度无效问题 解决

    最近用base64编码传图片遇到了点问题,总结下. 首先总结下base64编码的逻辑,来自网络:https://www.cnblogs.com/zhangchengye/p/5432276.html ...

  4. SQL中字符串截取、连接、替换等函数的用法

    一.SQL中SUBSTRING函数的用法1.功能:返回字符.二进制.文本或图像表达式的一部分2.语法:SUBSTRING ( expression, start, length )3.QL 中的 su ...

  5. Oracle截取字符串函数和查找字符串函数,连接运算符||

    参考资料:Oracle截取字符串和查找字符串 oracle自定义函数学习和连接运算符(||) oracle 截取字符(substr),检索字符位置(instr) case when then else ...

  6. java格式化字符串,在指定位置插入指定字符串,兼容中英文以及特殊字符,例如:换行,用于解决生成pdf换行问题等问题

    本博客是自己在学习和工作途中的积累与总结,仅供自己参考,也欢迎大家转载,转载时请注明出处.  http://www.cnblogs.com/king-xg/p/6370890.html 如果觉得对您有 ...

  7. Python习题-输出一个字符串中最长的子字符串及其长度

    描述:有个字符串$sd1#111$svda123!!!221&eSSDSDG,包含特殊字符.数字和字母,输出最长的子字符串和他的长度#例如上面的字符串包含数字字母的字符串是svda123,长度 ...

  8. Python求包含数字或字母最长的字符串及长度

    一.求包含数字或字母最长的字符串及长度 org = 'ss121*2222&sdfs2!aaabb' result = [] #保存最终要输出的字符串 result_temp = [] #保存 ...

  9. 根据 oracle 标准计算超长字符串的长度

    Oracle 数据库使用 sql语句 :    select lengthb('输入字符串') from dual  ,  来计算 字符串 所占的字节长度(比如,一个汉字3个字节),但是用这个leng ...

  10. python-又来练习题--输出一个字符串中最长的子字符串及其长度

    一.有个字符串 str= '$sd1#111$svda123!!!221&eSSDSyyyyyyDG^svda121^svda124^1111111111111' 包含特殊字符.数字和字母,输 ...

随机推荐

  1. 【LeetCode二叉树#20】二叉搜索树转换为累加树,巩固二叉树的遍历(特殊的中序遍历)

    将二叉搜索树转换为累加树 力扣题目链接(opens new window) 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 no ...

  2. 利用微软官方API实现Office文档的在线预览功能

    随着互联网时代的飞速发展,越来越多的工作开始依赖于云端服务,我们的办公方式也逐渐发生了翻天覆地的变化.在这种背景下,急需一种无需本地安装Office软件,就能快速查看和共享Word.PowerPoin ...

  3. 启用reactRouter,让Navigator支持多页面

    启用reactRouter,让Navigator支持多页面 当前系统就一个页面,感觉是时候让她晋级到多页面程序了. 网上此类教程,我只记录我需要的最小范围. 0.目标 整站由原来的一个页面,变成2个页 ...

  4. 风控规则引擎(一):Java 动态脚本

    风控规则引擎(一):Java 动态脚本 日常场景 共享单车会根据微信分或者芝麻分来判断是否交押金 汽车租赁公司也会根据微信分或者芝麻分来判断是否交押金 在一些外卖 APP 都会提供根据你的信用等级来发 ...

  5. day11-实现Spring底层机制-01

    实现Spring底层机制-01 主要实现:初始化IOC容器+依赖注入+BeanPostProcessor机制+AOP 前面我们实际上已经使用代码简单实现了: Spring XML 注入 bean (S ...

  6. Android native项目编译v7a时-Werror参数导致报错

    在GitHub上下载了一个demo,自己编译运行时,v8a的so是可以正常编译运行的,但是就是v7a的不能也一直报错,最后发现在Android.mk文件里去掉-Werror字段就可以了.于是上网了解了 ...

  7. 【732. 我的日程安排表 III】差分数组

    class MyCalendarThree { private TreeMap<Integer, Integer> cnt; public MyCalendarThree() { cnt ...

  8. .NET Core使用 CancellationToken 取消API请求

    您是否曾经访问过一个网站,它需要很长时间加载,最终你敲击 F5 重新加载页面. 即使用户刷新了浏览器取消了原始请求,而对于服务器来说,API也不会知道它正在计算的值将在结束时被丢弃,刷新五次,服务器将 ...

  9. 实时云渲染 VS 本地渲染,全面横向对比

    不少用户不能理解,为什么要选用实时云渲染,而不用本地的电脑进行渲染显示?本文将通过各个方面来对比两种模式的优劣支持,帮助您更全面了解实时云渲染和本地渲染. 一.便携性对比 由于GPU对机箱空间有要求, ...

  10. 专访|3DCAT如何赋能Matterverse打造3A游戏画面的Sandbox

    元宇宙概念自20世纪90年代创造,在21世纪经历20年快速塑形,终于在2021年进入元年,元宇宙概念爆发,受到政府.机构.企业以及网民的高度关注,资本市场一度高涨,相关投资赛道大热. 元宇宙第一股Ro ...