Tutorialsteacher

关注我们

文章
  • C#
  • C# 面向对象编程
  • ASP.NET Core
  • ASP.NET MVC
  • LINQ
  • 控制反转 (IoC)
  • Web API
  • JavaScript
  • TypeScript
  • jQuery
  • Angular 11
  • Node.js
  • D3.js
  • Sass
  • Python
  • Go 语言
  • HTTPS (SSL)
  • 正则表达式
  • SQL
  • SQL Server
  • PostgreSQL
  • MongoDB
  • C# - 入门
  • C# - 版本历史
  • C# - 第一个程序
  • C# - 关键词
  • C# - 类和对象
  • C# - 命名空间
  • C# - 变量
  • C# - 隐式类型变量
  • C# - 数据类型
  • 数字
  • 字符串
  • DateTime
  • 结构体
  • 枚举
  • StringBuilder
  • 匿名类型
  • 动态类型
  • 可空类型
  • C# - 值类型和引用类型
  • C# - 接口
  • C# - 运算符
  • C# - if else 语句
  • C# - 三元运算符 ?
  • C# - Switch 语句
  • C# - For 循环
  • C# - While 循环
  • C# - Do-while 循环
  • C# - 分部类
  • C# - Static 关键字
  • C# - 数组
  • 多维数组
  • 交错数组
  • C# - 索引器
  • C# - 泛型
  • 泛型约束
  • C# - 集合
  • ArrayList
  • List
  • SortedList
  • Dictionary
  • Hashtable
  • Stack
  • Queue
  • C# - 元组
  • C# - 值元组
  • C# - 内置异常
  • 异常处理
  • throw 关键字
  • 自定义异常
  • C# - 委托
  • Func 委托
  • Action 委托
  • Predicate 委托
  • 匿名方法
  • C# - 事件
  • C# - 协变
  • C# - 扩展方法
  • C# - 流 I/O
  • C# - File 类
  • C# - FileInfo 类
  • C# - 对象初始化器
  • OOP - 概述
  • 面向对象编程
  • 抽象
  • 封装
  • 关联与组合
  • 继承
  • 多态
  • 方法重写
  • 方法隐藏
  • C# - SOLID 原则
  • 单一职责原则
  • 开闭原则
  • 里氏替换原则
  • 接口隔离原则
  • 依赖倒置原则
  • 设计模式
  • 单例模式
  • 抽象工厂模式
  • 工厂方法模式
Entity Framework Extensions - 提升 EF Core 9
  批量插入
  批量删除
  批量更新
  批量合并

C# 字符串

在 C# 中,字符串是一系列用于表示文本的字符。它可以是一个字符、一个单词或一段被双引号 " 包裹的长文本。以下是字符串字面量。

示例:字符串字面量
"S"
"String"
"This is a string."

C# 提供了 String 数据类型来存储字符串字面量。可以声明字符串类型的变量并赋值字符串字面量,如下所示。

示例:字符串类型变量
string ch = "S";
string word = "String";
string text = "This is a string.";
尝试一下

内存中 String 对象的最大大小为 2GB 或大约 10 亿个字符。然而,实际上它会更小,具体取决于计算机的 CPU 和内存。

在 C# 中声明字符串变量有两种方法。使用 System.String 类和使用 string 关键字。两者相同,没有区别。有关更多信息,请参阅 string 与 String。

示例:String 和 string
string str1 = "Hello"; // uses string keyword
 
String str2 = "Hello"; // uses System.String class
尝试一下

在 C# 中,字符串是字符的集合或数组。因此,字符串可以使用 char 数组创建或像 char 数组一样访问。

示例:字符串作为字符数组
char[] chars = {'H','e','l','l','o'};

string str1 = new string(chars);  
String str2 = new String(chars); 

foreach (char c in str1)
{
    Console.WriteLine(c);
}
尝试一下

特殊字符

现实世界中的文本可以包含任何字符。在 C# 中,由于字符串是用双引号括起来的,因此它不能在字符串中包含 "。以下代码将导致编译时错误。

示例:无效字符串
string text = "This is a "string" in C#.";

C# 在这些特殊字符之前包含转义字符 \(反斜杠),以便将其包含在字符串中。

在双引号和某些特殊字符(如 \、\n、\r、\t 等)之前使用反斜杠 \,将其包含在字符串中。

示例:转义字符 \
string text = "This is a "string" in C#.";
string str = "xyzdef\rabc";
string path = "\\mypc\ shared\project";
尝试一下

逐字字符串

为每个特殊字符都添加 \ 前缀是很繁琐的。C# 中的逐字字符串允许特殊字符和换行符。逐字字符串可以通过在双引号前加上 @ 符号来创建。

示例:转义序列
string str = @"xyzdef
abc";
string path = @"\mypcsharedproject";
string email = @"[email protected]";
尝试一下

@ 符号也可以用于声明多行字符串。

示例:多行字符串
string str1 = "this is a 
" + 
        "multi line 
" + 
        "string";
		
// Verbatim string
string str2 = @"this is a 
        multi line 
        string";
尝试一下

请注意,您不能使用反斜杠在逐字字符串中包含 "。如果您希望包含 @,则使用双引号 "" 在逐字字符串中包含 "。

string text = "This is a "string" in C#."; // valid
string text = @"This is a "string." in C#."; // error
string text = @"This is a "string" in C#."; // error
string text = @"This is a ""string"" in C#."; // valid

字符串连接

可以使用 + 运算符连接多个字符串。

示例:字符串连接
string name = "Mr." + "James " + "Bond" + ", Code: 007";
 
string firstName = "James";
string lastName = "Bond";
string code = "007";
 
string agent = "Mr." + firstName + " " + lastName + ", Code: " + code;
尝试一下

C# 中的 String 是不可变的。这意味着它一旦在内存中创建就只读且不能更改。每次连接字符串时,.NET CLR 都会为连接后的字符串创建一个新的内存位置。因此,如果连接超过五个字符串,建议使用 StringBuilder 而不是 string。

字符串插值

字符串插值是一种更好的字符串连接方式。我们使用 + 符号将字符串变量与静态字符串连接起来。

C# 6 包含一个特殊字符 $ 来标识插值字符串。插值字符串是静态字符串和字符串变量的混合,其中字符串变量应位于括号括起来。

示例:字符串插值
string firstName = "James";
string lastName = "Bond";
string code = "007";
 
string fullName = $"Mr. {firstName} {lastName}, Code: {code}";
尝试一下

在上述插值示例中,$ 表示插值字符串,并且包含要合并到字符串中的字符串变量。

使用两个大括号,{{或者}}包含{或者}在字符串中。

TUTORIALSTEACHER.COM

TutorialsTeacher.com 是您权威的技术教程来源,旨在通过循序渐进的方法,指导您掌握各种网络和其他技术。

我们的内容旨在帮助所有水平的学习者轻松快速地学习技术。访问此平台即表示您已阅读并同意遵守我们的使用条款和隐私政策,这些条款和政策旨在保护您的体验和隐私权。

[email protected]

关于我们使用条款隐私政策
copywrite-symbol

2024 TutorialsTeacher.com. (v 1.2) 版权所有。