C# String字符串类用法详解(附带实例)
String 是属于 System 命名空间的类,本节我们使用 string 声明字符串变量,此关键词 string 是 .NET System.String 结构类型,所以我们也可以用 System.String 或 String 声明字符串变量。
例如:
Length 是 String 类最常用的属性,用来获取字符串的长度。例如:
空字符串还可以使用下列方式声明:
例如,分别声明 null、空字符串和 System.String.Empty,然后输出:
例如:
从上述程序可以看到“+=”符号也可以应用在字符串运算中,“+”是加号。C# 在修改字符串时实际上是在创建新的字符串,因此创建字符串引用时,该字符串仍将指向原始对象。
【实例】字符串引用与修改字符串内容。
String 类的方法主要就是处理字符串,这些方法可以方便程序设计师未来设计相关应用时使用,可以参考下表。
【实例】更改字符串大小写的应用。
【实例】字符串结合的应用。
【实例】字符串截取的应用。
例如:
string str1 = "C#语言"; String str2 = "C#入门教程"; System.String str3 = "C语言中文网"; Console.WriteLine($"{str1}"); Console.WriteLine($"{str2}"); Console.WriteLine($"{str3}");执行结果为:
C#语言
C#入门教程
C语言中文网
Length 是 String 类最常用的属性,用来获取字符串的长度。例如:
string str; Console.Write("请输入任意字符串:"); str = Console.ReadLine(); Console.WriteLine($"字符串长度是:{str.Length}");执行结果为:
请输入任意字符串:I like C#.
字符串长度是:10
C# null和空字符串
C# 可以声明字符串为 null 或空字符串。空字符串还可以使用下列方式声明:
string s3 = System.String.Empty;因为 System 已经被隐式 using 导入,所以也可以省略 System,读者可以用下列方案自行测试。
例如,分别声明 null、空字符串和 System.String.Empty,然后输出:
string str1 = null; string str2 = ""; string str3 = System.String.Empty; Console.WriteLine($"str1 = {str1}"); Console.WriteLine($"str2 = {str2}"); Console.WriteLine($"str3 = {str3}");执行结果为:
str1 =
str2 =
str3 =
C# const应用到字符串
const 关键词可以用于定义不可变更的字符串变量。例如:const string str1 = "C#语言"; const string str2 = "C语言中文网"; Console.WriteLine($"{str1}\n{str2}");执行结果为:
C#语言
C语言中文网
C#字符串连接“+”符号
加法符号“+”在字符串的应用中可以执行字符串的连接。例如:string str1 = "C#入门教程"; string str2 = "https://c.biancheng.net/csharp/"; string str3 = "教程名称:" + str1; string str4 = "网址:" + str2; Console.WriteLine(str3 + ' ' + str4);执行结果为:
教程名称:C#入门教程 网址:https://c.biancheng.net/csharp/
C#字符串引用
在 C# 程序概念中,字符串内容是不可变的,如果有修改字符串的动作,则其实是编译程序生成了新的字符串。例如:
string str1 = "Deepmind "; string str2 = ": Deepen your mind."; str1 += str2; Console.WriteLine(str1);执行结果为:
Deepmind : Deepen your mind.
上述程序中原先赋值给 str1 的对象的旧内存会被释放,也就是编译程序会执行垃圾收集。从上述程序可以看到“+=”符号也可以应用在字符串运算中,“+”是加号。C# 在修改字符串时实际上是在创建新的字符串,因此创建字符串引用时,该字符串仍将指向原始对象。
【实例】字符串引用与修改字符串内容。
string str1 = "Deepmind "; string str2 = str1; str1 += ": Deepen your mind"; Console.WriteLine(str2);执行结果为:
Deepmind
上述执行第 3 行 str2 指向 str1 对象的地址,但是执行第 4 行后 str1 是创建新字符串,但是 str2 仍指向原始对象,所以 str2 的内容没有同步变更。C# String类常用的方法
String 类的方法在使用时会创建一个新对象回传,原始字符串内容则不更改。String 类的方法主要就是处理字符串,这些方法可以方便程序设计师未来设计相关应用时使用,可以参考下表。
方法 | 说明 |
---|---|
ToLower() | 将字符串改为全部小写。 |
ToUpper() | 将字符串改为全部大写。 |
ToTitleCase() | 将字符串改为首字母大写。 |
Concat() | 字符串结合。 |
Compare() | 字符串比较。 |
CompareTo() | 字符串比较。 |
Equals() | 字符串比较。 |
Substring() | 字符串截取。 |
IndexOf() | 回传第一次出现字符串的索引位置。 |
LastIndexOf() | 回传最后出现字符串的索引位置。 |
Contains() | 回传是否包含特定字符串。 |
Replace() | 字符串替换功能。 |
Split() | 字符串分割。 |
Trim() | 删除前后空格符。 |
Remove() | 移除字符。 |
StartsWith | 回传是否字符串是由某内容开始。 |
EndsWith | 回传是否字符串是由某内容结束。 |
Format() | 格式化字符串。 |
Insert() | 插入字符串。 |
PadLeft() | 左边填充字符。 |
PadRight() | 右边填充字符。 |
【实例】更改字符串大小写的应用。
string str = "a TALe oF tWo ciTies"; // 转为小写字母 string str1 = str.ToLower(); Console.WriteLine($"\"{str}\" 转成小写 :{str1}"); // 转为大写字母 string str2 = str.ToUpper(); Console.WriteLine($"\"{str}\" 转成大写 :{str2}");执行结果为:
"a TALe oF tWo ciTies" 转成小写 :a tale of two cities
"a TALe oF tWo ciTies" 转成大写 :A TALE OF TWO CITIES
【实例】字符串结合的应用。
string str1 = "I like"; string str2 = " Ice"; string str3 = " Cream"; string str4 = String.Concat(str1, str2, str3); Console.WriteLine(str4);执行结果为:
I like Ice Cream
【实例】字符串截取的应用。
string str = "Hello, World!"; string str1 = str.Substring(2); string str2 = str.Substring(2, 6); Console.WriteLine(str1); Console.WriteLine(str2);执行结果为:
llo, World!
llo, W