摘要
在编程时字符串是比较常用的一种数据类型,例如用户名、邮箱、家庭住址、商品名称等信息都需要使用字符串类型来存取。
字符串是值为文本的 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 = @"张三有个别名叫 ""小张""";
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 =“ç”) |
网友评论