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

示例:

// 创建一个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. 【Azure Function App】本地运行的Function发布到Azure上无法运行的错误分析

    问题描述 Azure Function部署后未执行,查看日志发现错误信息: 2023-12-19T11:12:27.145 [Verbose] Host configuration applied.2 ...

  2. 【Azure API 管理】讨论APIM是否适合直接存储文件到Azure Storage Account呢?

    问题描述 需要从 APIM 直接将大文件存入Azure Storage,没看到这方面的官方文档,所以是否有这方面的实践案例,或者APIM是否支持引用SDK (如Azure Storage SDK)? ...

  3. 简单封装 Flurl

    FlurlHttpClient类 public class FlurlHttpClient { private readonly FlurlClient client; public FlurlHtt ...

  4. [逆向] FS寄存器

    偏移 说明 00 指向SEH链表指针 04 线程堆栈顶部(地址最小) 08 线程堆栈底部(地址最大) 0c SubSystemTib 10 FiberData 14 ArbitraryUserPoin ...

  5. Java 线程通信的应用:经典例题:生产者/消费者问题

    1 package bytezero.threadcommunication; 2 3 /** 4 * 线程通信的应用:经典例题:生产者/消费者问题 5 * 6 * 7 * 8 * @author B ...

  6. Java 客户信息管理软件 (面向对象 封装 总结)

    1 package com.bytezero.cim.bean; 2 3 /** 4 * 5 * @Description Customer为实体对象,用来封装客户信息 6 * @author Byt ...

  7. 我的闲鱼Python爬虫接单总结和经验,最高600元一单

    最近,我在闲鱼上利用 Python 爬虫技术接了一些任务,想必你一定好奇,通过这样的方式,到底能不能挣钱,能挣多少钱?今天我就来分享一下我的经验和总结. 一.接单经历 之前 Vue 的作者尤大在微博上 ...

  8. k8s实战之MySQL单实例部署

    前面我们学习了k8s入门系列文章,了解了k8s的一些基础概念以及怎么使用.本篇文章将进行一个小小的实战,使用k8s来部署单机版的mysql数据库,基本涵盖到前面讲到的Namespace.Pod.Dep ...

  9. vue3,实战项目随心笔记

    本项目模仿bibi 网站,主要是做一个pc和手机端的应用案例,主要涉及支付,三方登陆,css原子,妹子ui,路由缓存,组件封装,tailwindcss,vueuse 等常见企业级术应用, 由于本项目是 ...

  10. Zabbix“专家坐诊”第192期问答汇总

    问题一 Q:请问下,客户机snmptrap发告警为啥server web收不到,关键是snmptrap日志已经收到,zabbix server配置以及开启snmptrap=1 snmptrap=var ...