1.字符串:属于一个密封类,不能被继承
2不可变性:字符串不能修改堆上的内容,改的是地址
例:string str = "asd";
str = "zxc";
3.char字符一般用‘ ’包裹,而字符串一般用“ ”包裹
4.以下是一些常见的特殊字符和转义序列:
\字符用于创建转义序列,表示特殊字符或控制字符。
常见的转义序列包括:
\\ - 表示反斜杠字符本身。
\" - 表示双引号字符。
\' - 表示单引号字符。
\n - 表示换行符。
\r - 表示回车符。
\t - 表示制表符。
\uXXXX - 表示指定的Unicode字符,其中XXXX是四位十六进制数
在C#中,$和@都是特殊字符,用于字符串的不同功能。
&字符:
在字符串前面加上$符号,然后在字符串中使用{}大括号来引用变量或表达式。
示例:
@字符:
@字符用于创建逐字字符串,也称为原始字符串。
在字符串前面加上@符号,可以告诉编译器将字符串按原样处理,忽略转义字符的特殊含义。
在逐字字符串中,可以直接使用换行符、制表符等特殊字符,而不需要使用转义字符。
逐字字符串对于包含大量特殊字符或文件路径的字符串非常有用。
示例:
这两个特殊字符可以组合使用,创建插值逐字字符串:
string name = "张三";
string speak = $@"Hello, {name}";
Console.WriteLine(speak);
在插值逐字字符串中,可以享受字符串插值的便利,同时保留字符串的原始格式。
{}大括号 - 字符串插值中的表达式:
在字符串插值中,可以使用{}大括号来包含表达式或条件语句。
示例:
string msg8 = "abc";
bool flag = true;
// 硬回车,软回车
string msg9 = $"{msg8}-qqq{(flag ? "男" : "女")}";
Console.WhiteLine(msg9);
//输出结果为:
//abc-qqq男
[]方括号 - 字符串中的索引器:
可以使用[]方括号来访问字符串中的单个字符。
示例:
string text = "Hello!";
char chars = text[0];
Console.WriteLine(chars);
//输出结果为:
//H
这些特殊字符和转义序列提供了更多的灵活性和控制力,用于处理字符串中的特殊字符、格式化字符串以及访问字符串的特定部分。
以下是一些常见的转义字符及其示例:
\n - Newline (换行符)
示例:
Console.WriteLine("hello \n world!");
//输出结果为:
//hello
// world!
\" - 双引号
示例:
Console.WriteLine("hello \" world!\"");
//输出结果为:
//hello " world!"
\' - 单引号
示例:
Console.WriteLine("we\'re beautiful");
//输出的结果为:
//we're beautiful
\b - Backspace (退格符)
示例:
Console.WriteLine("Hello\b\b\b");
//输出: He
\r - Carriage Return (回车符)
示例:
Console.WriteLine("Hello\rWorld");
//输出: World
字符串部分API:
1.Concat() join() 连接两个字符串
// 字符串串联(合并) string.Concat() || string.Join()
string str = "hello";
char[] chars = str.Concat(new char[] { ' ', 'w', 'o', 'r', 'l', 'd' }).ToArray();
Console.WriteLine(chars);
//输出结果
//hello world
string result1 = string.Concat(str, " ", "world", " how are you");
Console.WriteLine(result1);
//输出结果
//hello world how are you
2.StartsWith 以...开头 EndsWith 以...结尾
// 判断字符串以xx开头,以xx结尾
string str = "hello";
Console.WriteLine(str.StartsWith("He", StringComparison.OrdinalIgnoreCase));
Console.WriteLine(str.EndsWith("llo", StringComparison.OrdinalIgnoreCase));
//运行结果
//true
//true
3.Equals (判断) ReferenceEquals
// 判断字符串相等
string str ="hello";
string str2 = "hello";
if (str.Equals(str2))//确定此实例是否与另一个指定的string对象具有相同的值
{
Console.WriteLine("成立");
}
//在同一程序集创建Class1.cs
Class1 cls1 = new Class1();
Class1 cls2 = new Class1();
if (!cls1.Equals(cls2))//确定指定的对象是否等于当前对象
{
Console.WriteLine("不成立");
}
//确定指定的object实例是否是相同的实例
Console.WriteLine(object.ReferenceEquals(cls1, cls2));
4.Insert 插入
string str = "hello";
Console.WriteLine(str.Insert(2, "AAA"));//在索引值为2的地方插入“AAA”
//输出结果
// HeAAAllo
5.IsNullOrEmpty(指定的字符串是null还是空字符串“ ”)
IsNullOrEmpty(判断字符串是空,null还是仅由空白白字符组成)
// 判断空
string str ="hello"
string.IsNullOrEmpty(str);
string.IsNullOrEmpty(str);
6.PadLeft() PadRight() 不足宽度补字符(左,右)
// 不足宽度补字符 str.PadLeft(), str.PadRight()
string str ="hello";
Console.WriteLine(str.PadLeft(10));
Console.WriteLine(str.PadLeft(10, 'A'));
//输出结果
//AAAAAAhello
Console.WriteLine(str.PadRight(10));
Console.WriteLine(str.PadRight(10, 'A'));
//输出结果
//helloAAAAAA
7.删除 Remove
string str = "hello"
Console.WriteLine(str.Remove(1, 2));
//运行结果
//hlo
8.替换 Replace
string str ="hello";
Console.WriteLine(str.Replace('l', 'L'));
//运行结果
//heLLo
Console.WriteLine(str.Replace("ll", "L"));
//运行结果
//heLo
9. 截取 Substring()
Console.WriteLine(str.Substring(0, 2));
10.去除空白
str.Trim(),str.TrimLeft(),str.TrimRigth()
11. 拆分 str.Split()
12. 转换大小写
str.ToUpper(), str.ToLower()
13. 转换成字符数组 str.ToCharArray()