C# - 字符串
在 C# 中,你可以将字符串用作字符数组。然而,更常见的做法是使用 string 关键字来声明字符串变量。 string 关键字是 System.String 类的别名。
创建字符串对象
您可以使用以下方法之一创建字符串对象 -
通过将字符串文字赋值给字符串变量
通过使用字符串类构造函数
通过使用字符串连接运算符 (+)
通过检索属性或调用返回字符串的方法
通过调用格式化方法将值或对象转换为其字符串表示形式
以下示例演示了这一点 -
using System;
namespace StringApplication {
class Program {
static void Main(string[] args) {
//来自字符串文字和字符串连接
string fname, lname;
fname = "Rowan";
lname = "Atkinson";
char[] letters = {'H', 'e', 'l', 'l', 'o'};
string[] sarray = {
"Hello",
"From",
"Tutorials",
"Point"
};
string fullname = fname + lname;
Console.WriteLine("Full Name: {0}", fullname);
//通过使用字符串构造函数 { 'H', 'e', 'l', 'l','o' };
string greetings = new string(letters);
Console.WriteLine("Greetings: {0}", greetings);
string message = String.Join(" ", sarray);
Console.WriteLine("Message: {0}", message);
//格式化方法来转换值
DateTime waiting = new DateTime(2012, 10, 10, 17, 58, 1);
string chat = String.Format(
"Message sent at {0:t} on {0:D}", waiting
);
Console.WriteLine("Message: {0}", chat);
}
}
}
当编译并执行上述代码时,它会产生以下结果 -
Full Name: RowanAtkinson Greetings: Hello Message: Hello From Tutorials Point Message: Message sent at 5:58 PM on Wednesday, October 10, 2012
String 类的属性
String 类具有以下两个属性 -
| 序号 | 属性 &说明 |
|---|---|
| 1 | Chars 获取当前 String 对象中指定位置的 Char 对象。 |
| 2 | Length 获取当前 String 对象中的字符数。 |
String 类的方法
String 类有许多方法可帮助您处理字符串对象。下表列出了一些最常用的方法 -
| 序号 | 方法 &说明 |
|---|---|
| 1 |
Clone()
返回此字符串实例的引用。 |
| 2 |
CompareOrdinal()
通过计算字符串中对应字符的数值来比较两个字符串。 |
| 3 |
Compare()
比较使用指定规则(区分大小写、特定于文化等)连接两个指定的字符串对象。 |
| 4 |
Concat()
连接两个字符串对象。 |
| 5 |
Contains()
返回一个值,指示指定的字符串对象是否出现在此字符串中。 |
| 6 |
CopyTo()
将指定数量的字符从此字符串复制到字符数组中的指定位置。 |
| 7 |
EndsWith()
判断此字符串实例的末尾是否与指定字符串匹配。 |
| 8 |
Equals()
判断两个指定的 String 对象是否具有相同的值。 |
| 9 |
Format()
它将字符串中的格式项替换为相应对象的字符串表示形式。 |
| 10 |
GetEnumerator()
它检索一个可以遍历此字符串中各个字符的枚举器。 |
| 11 |
GetHashCode()
它返回此字符串的哈希码字符串。 |
| 12 |
IndexOfAny()
它在指定的字符数组中查找任意字符首次出现的索引。 |
| 13 |
IndexOf()
它返回此字符串中指定子字符串首次出现的从零开始的索引。 |
| 14 |
Insert()
在当前字符串的指定索引处插入一个字符串。 |
| 15 |
IsNullOrEmpty()
检查字符串是否为 null 或空。 |
| 16 |
IsNullOrWhiteSpace()
检查字符串是否为 null、空或仅包含空格。 |
| 17 |
Join()
使用指定的分隔符连接对象数组的字符串表示形式。 |
| 18 |
LastIndexOf()
返回字符串中指定子字符串最后一次出现的索引(从零开始)。 |
| 19 |
PadLeft()
使用指定字符填充字符串左侧,以达到给定的总长度。 |
| 20 |
PadRight()
使用指定字符填充字符串右侧,以达到给定的总长度。 |
| 21 |
Remove()
从当前字符串的指定位置开始,删除指定数量的字符。 |
| 22 |
Replace()
将所有出现的指定子字符串替换为另一个子字符串。 |
| 23 |
Split()
根据指定的分隔符将字符串拆分为多个子字符串。 |
| 24 |
StartWith()
判断此字符串实例的开头是否与指定字符串匹配。 |
| 25 |
Substring()
从指定索引处开始检索子字符串,直到字符串末尾。 |
| 26 |
ToCharArray()
转换将字符串转换为字符数组。 |
| 27 |
ToLower()
将字符串的所有字符转换为小写。 |
| 28 |
ToString()
返回对象的字符串表示形式。 |
| 29 |
ToUpper()
将字符串的所有字符转换为大写。 |
| 30 |
TrimEnd()
从当前字符串中删除所有尾随空格。 |
| 31 |
TrimStart()
从当前字符串中删除所有前导空格。 |
| 32 |
Trim()
该函数用于从当前字符串中删除所有前导和尾随空格。 |
本章总结了 C# 编程中常用的字符串类的关键方法。完整的方法列表和字符串类的构造函数,请访问 MSDN 库。
示例
以下示例演示了上述一些方法 -
比较字符串
using System;
namespace StringApplication {
class StringProg {
static void Main(string[] args) {
string str1 = "This is test";
string str2 = "This is text";
if (String.Compare(str1, str2) == 0) {
Console.WriteLine(
str1 + " and " + str2 + " are equal."
);
} else {
Console.WriteLine(
str1 + " and " + str2 + " are not equal."
);
}
Console.ReadKey() ;
}
}
}
当编译并执行上述代码时,它会产生以下结果 -
This is test and This is text are not equal.
字符串包含字符串
using System;
namespace StringApplication {
class StringProg {
static void Main(string[] args) {
string str = "This is test";
if (str.Contains("test")) {
Console.WriteLine("The sequence 'test' was found.");
}
Console.ReadKey() ;
}
}
}
当编译并执行上述代码时,它会产生以下结果 -
The sequence 'test' was found.
获取子字符串
using System;
namespace StringApplication {
class StringProg {
static void Main(string[] args) {
string str = "Last night I dreamt of San Pedro";
Console.WriteLine(str);
string substr = str.Substring(23);
Console.WriteLine(substr);
}
}
}
当编译并执行上述代码时,它会产生以下结果 -
San Pedro
连接字符串
using System;
namespace StringApplication {
class StringProg {
static void Main(string[] args) {
string[] starray = new string[] {
"Down the way nights are dark",
"And the sun shines daily on the mountain top",
"I took a trip on a sailing ship",
"And when I reached Jamaica",
"I made a stop"
};
string str = String.Join("", starray);
Console.WriteLine(str);
}
}
}
当编译并执行上述代码时,它会产生以下结果 -
Down the way nights are dark And the sun shines daily on the mountain top I took a trip on a sailing ship And when I reached Jamaica I made a stop

