C# 字符串操作指南:长度、连接、插值、特殊字符和实用方法
字符串用于存储文本。一个字符串变量包含由双引号括起的字符集合
示例:
// 创建一个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" 之后添加了一个空格,以在打印时在 firstName 和 lastName 之间创建一个空格。
您还可以使用 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# 字符串操作指南:长度、连接、插值、特殊字符和实用方法的更多相关文章
- Base-64 字符数组或字符串的长度无效等问题解决方案
项目特殊需要,调用ActiveX三维控件进行控件某一特殊部位的截图操作,这个截图保存由ActiveX控件控制保存到本地是没问题的,现在需要将这个截图上传到服务器,多人共享,就牵扯到需要读取本地文件…… ...
- Base64 报错 的解决办法 (Base-64 字符数组或字符串的长度无效。, 输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符。)
Base64 报错 的解决办法, 报错如下:1. FormatException: The input is not a valid Base-64 string as it contains a n ...
- C#编程中的Image/Bitmap与base64的转换及 Base-64 字符数组或字符串的长度无效问题 解决
最近用base64编码传图片遇到了点问题,总结下. 首先总结下base64编码的逻辑,来自网络:https://www.cnblogs.com/zhangchengye/p/5432276.html ...
- SQL中字符串截取、连接、替换等函数的用法
一.SQL中SUBSTRING函数的用法1.功能:返回字符.二进制.文本或图像表达式的一部分2.语法:SUBSTRING ( expression, start, length )3.QL 中的 su ...
- Oracle截取字符串函数和查找字符串函数,连接运算符||
参考资料:Oracle截取字符串和查找字符串 oracle自定义函数学习和连接运算符(||) oracle 截取字符(substr),检索字符位置(instr) case when then else ...
- java格式化字符串,在指定位置插入指定字符串,兼容中英文以及特殊字符,例如:换行,用于解决生成pdf换行问题等问题
本博客是自己在学习和工作途中的积累与总结,仅供自己参考,也欢迎大家转载,转载时请注明出处. http://www.cnblogs.com/king-xg/p/6370890.html 如果觉得对您有 ...
- Python习题-输出一个字符串中最长的子字符串及其长度
描述:有个字符串$sd1#111$svda123!!!221&eSSDSDG,包含特殊字符.数字和字母,输出最长的子字符串和他的长度#例如上面的字符串包含数字字母的字符串是svda123,长度 ...
- Python求包含数字或字母最长的字符串及长度
一.求包含数字或字母最长的字符串及长度 org = 'ss121*2222&sdfs2!aaabb' result = [] #保存最终要输出的字符串 result_temp = [] #保存 ...
- 根据 oracle 标准计算超长字符串的长度
Oracle 数据库使用 sql语句 : select lengthb('输入字符串') from dual , 来计算 字符串 所占的字节长度(比如,一个汉字3个字节),但是用这个leng ...
- python-又来练习题--输出一个字符串中最长的子字符串及其长度
一.有个字符串 str= '$sd1#111$svda123!!!221&eSSDSyyyyyyDG^svda121^svda124^1111111111111' 包含特殊字符.数字和字母,输 ...
随机推荐
- linux下python3环境安装(源码编译的方式安装)
1.将压缩包上传到/usr/local/ 2.解压压缩包 tar -xzvf Python-3.6.6.tgz 3.装一些编译源码需要的依赖文件 yum -y install gcc make cma ...
- 项目打包setup.py(setuptools)
参考 https://www.cnblogs.com/dan-baishucaizi/p/13564333.html https://www.cnblogs.com/dan-baishucaizi/p ...
- 【Python OO其一】构造函数__init__()
Python对象包括三个部分:id(identity识别码).type(对象类型).value(对象的值) __ init __()构造函数 __ init __()方法应用定义构造函数,作用是在实例 ...
- Windows开发环境如何启用Directory.Build.props版本号集中管理
每个产品一个根目录 Directory.Build.props的工作模式和NuGet.Config不同,Directory.Build.props不能继承.当dotnet restore工作的时候,会 ...
- 【Azure 应用服务】在Azure App Service多实例的情况下,如何在应用中通过代码获取到实例名(Instance ID)呢?
问题描述 App Service开启多实例后,如何在代码中获取当前请求所真实到达的实例ID(Instance ID)呢? 问题答案 App Service 通过 环境变量的方式 显示的输出实例ID等信 ...
- Java ----多线程 案例
1 package bytezero.threadtest2; 2 3 /** 4 * 银行有一个账户 5 * 有两个储户分别向同一个账户存 3000元,每次存1000,存三次,每次存完打印账户余额 ...
- Linux操作系统加固建议
1.1.1 口令锁定策略 1.执行备份 (1).redhat执行备份: #cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak (2).SUS ...
- CodeCraft-22 and Codeforces Round 795 (Div. 2)C. Sum of Substrings(分类讨论、贪心)
感觉分类讨论的能有点弱.遇到复杂一点的分类讨论的题目,代码就写的巨长. 首先观察到处在中间位置的1对答案的贡献是11,具体在中间哪个位置是没有关系的. 只有两端的两个位置是比较特殊的 \(1位置处的1 ...
- netcore 图片缩略图
/// <summary> /// 取小写文件名后缀 /// </summary> /// <param name="name">文件名< ...
- Linux int型转换为char*型几种方法总结
一 前记 这种转换,windows下最常用就是atoi()函数.可惜的是,在Linux中没有itoa()函数,只有atoi() 这点很有趣,居然不对称. 所以在Linux中实现从整型到char*的 ...