优秀的编程知识分享平台

网站首页 > 技术文章 正文

24.C# 字符串基础(c# $字符串)

nanyue 2024-08-27 18:11:16 技术文章 7 ℃

摘要


在编程时字符串是比较常用的一种数据类型,例如用户名、邮箱、家庭住址、商品名称等信息都需要使用字符串类型来存取。

字符串是值为文本的 String 类型对象。 文本在内部存储为 Char 对象的依序只读集合。

正文


string 与System.String

在 C# 中,string 关键字是 String 的别名。 因此,并且string是等效的String,无论建议使用提供的别名string,即使没有using System;。 String 类提供了安全创建、操作和比较字符串的多种方法。

声明

//声明一个字符串
string message1;

//初使化为null
string message2 = null;

//初使化为一个空字符串
//这个一般就用""替代了
string message3 = System.String.Empty;

//初使化一个路径字符串
string oldPath = "c:\\Program Files\\Microsoft Visual Studio 2022";

//用String类来申明一个字符串
System.String greeting = "Hello World!";

//一行初使化几个变量
string l1 = "C#", l2 = "Java", l3 = "Python";

//通过char数组声明字符串
char[] ary = { '张', '三' };
string a = new string(ary);

空字符串与null的区别

string msg1 = "";
string msg2 = null;//空对像
Console.WriteLine(msg1.ToString());
Console.WriteLine(msg2.ToString());//出错

字符串的不可变性

符串对象是不 _可变_的:创建字符串对象后无法更改它们。 看起来是在修改字符串的所有 String 方法和 C# 运算符实际上都是在新的字符串对象中返回结果。 在下面的示例中,当 s1 和 s2 的内容被串联在一起以形成单个字符串时,两个原始字符串没有被修改。 += 运算符创建一个新的字符串,其中包含组合的内容。 这个新对象被分配给变量 s1,而分配给 s1 的原始对象被释放,以供垃圾回收,因为没有任何其他变量包含对它的引用。

string s1 = "A string is more ";
string s2 = "than the sum of its chars.";
s1 += s2;

System.Console.WriteLine(s1);

转义符应用到数组中

string columns = "Column 1\tColumn 2\tColumn 3";
Console.WriteLine(columns);
string rows = "Row 1\r\nRow 2\r\nRow 3";
Console.WriteLine(rows);

段落字符串

string text = @"虽然一年一度的WWDC主要是一个软件发布会,
但也总是时不时地给出一些硬件惊喜,今年也不例外。在WWDC22上,苹果公布了用于Mac(和iPad)
平台的第二代苹果系统芯片——M2。
这个时间点有些引人关注,尤其它是在M1芯片的王者之M1 Ultra发售后还不到三个月的时间,
就带来了第二代芯片,可谓没有浪费任何的时间。...";
Console.WriteLine(text);

//输出双引号
string msg = @"张三有个别名叫 ""小张""";
Console.WriteLine(msg);

字符串转义序列

转义序列

字符名称

Unicode 编码

'

单引号

0x0027

"

双引号

0x0022

\

反斜杠

0x005C

\0

null

0x0000

\a

警报

0x0007

\b

Backspace

0x0008

\f

换页

0x000C

\n

换行

0x000A

\r

回车

0x000D

\t

水平制表符

0x0009

\v

垂直制表符

0x000B

\u

Unicode 转义序列 (UTF-16)

\uHHHH(范围:0000 - FFFF;示例:\u00E7 =“?”)

\U

Unicode 转义序列 (UTF-32)

\U00HHHHHH(范围:000000 - 10FFFF;示例:\U0001F47D = "")

\x

除长度可变外,Unicode 转义序列与“\u”类似

\xH[H][H][H](范围:0 - FFFF;示例:\x00E7、\x0E7 或 \xE7 =“?”)

最近发表
标签列表