首页 > 编程笔记 > C#笔记 阅读:2

C# String字符串类用法详解(附带实例)

String 是属于 System 命名空间的类,本节我们使用 string 声明字符串变量,此关键词 string 是 .NET System.String 结构类型,所以我们也可以用 System.String 或 String 声明字符串变量。

例如:
string str1 = "C#语言";
String str2 = "C#入门教程";
System.String str3 = "C语言中文网";
Console.WriteLine($"{str1}");
Console.WriteLine($"{str2}");
Console.WriteLine($"{str3}");
执行结果为:

C#语言
C#入门教程
C语言中文网

习惯上,C# 程序设计师还是喜欢使用 String 关键词声明字符串。

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 类的方法主要就是处理字符串,这些方法可以方便程序设计师未来设计相关应用时使用,可以参考下表。

表:常用 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

相关文章