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' 包含特殊字符.数字和字母,输 ...
随机推荐
- Error creating bean with name 'XXX': Bean with name 'senseOneToSomeFeignImpl' has been injected into other beans [XXXXXX] in its raw version as part of a circular reference
关于Spring框架中的循环依赖问题,您可以尝试以下几种方法来解决: 重新定义Bean依赖:重构代码以消除循环依赖.这可能涉及重新设计类,使它们不相互依赖即可运行. 使用Setter注入:与构造函数注 ...
- 【Azure App Service for Linux】Linux Web App如何安装系统未安装的包
问题描述 Linux Web App中如何安装系统默认未安装的包,如何来执行如 apt install XXX命令呢?现在遇见的问题时,通过Azure App Service门户中的SSH登录后,执行 ...
- FolkMQ 作个简单的消息中间件(最简单的那种), v1.3.1 发布
功能简介 角色 功能 生产端(或发起端) 发布消息.定时消息(或叫延时).顺序消息.可过期消息.事务消息.发送消息(rpc)支持 Qos0.Qos1 消费端(或接收端) 订阅.取消订阅.消费-ACK( ...
- 3、mysql定位低效率执行SQL
可以通过以下两种方式定位执行效率较低的 SQL 语句. 慢查询日志 : 通过慢查询日志定位那些执行效率较低的 SQL 语句,用--log-slow-queries[=file_name]选项启动时,m ...
- Java基础全程复习笔记(值得参考)
Java基础复习笔记 第01章:Java语言概述 1. Java基础学习的章节划分 第1阶段:Java基本语法 Java语言概述.Java的变量与进制.运算符.流程控制语句(条件判断.循环结构).br ...
- es索引数据复制并增加条件和修改目标数据值
es操作同一个索引里数据的复制语法 复制数据: POST _reindex { "source": { "index": "source_index& ...
- 微信小程序直播,腾讯云直播+微信小程序实现实时直播
一:小程序代码端 小程序直播使用小程序组件 live-pusher 组件和live-player组件 首先开通直播权限 小程序开发工具内进行推流拉流都不会成功,所以需要使用两个手机进行推拉流测试: 1 ...
- 基于泰凌微TLSR8258芯片的智能安全头盔解决方案开发之自制IOT微型OS操作系统
一 前记 泰凌微的芯片在国内应用非常广泛,825x作为一个出货的主力芯片,该芯片有着性价比高,功耗低,功能强大等特色. 非常适合做一些比较小的穿戴式设备,比如,手环,智能安全帽等.笔者对这颗芯片用了长 ...
- 记录--用Echarts打造自己的天气预报!
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 最近刚刚学习了Echarts的使用,于是想做一个小案例来巩固一下.项目效果如下图所示: 话不多说,开始进入实战. 创建项目 这里我们 ...
- vue核心基础-过渡动画
第一种方法:引入类名 .v-enter{ opacity: 0; } .v-enter-to{ opacity: 1; } .v-leave{ opacity: 1; } .v-leave-to{ o ...