📜  C# 字符串长度 - C# (1)

📅  最后修改于: 2023-12-03 15:13:51.224000             🧑  作者: Mango

C# 字符串长度

在 C# 中,要获取一个字符串的长度,可以使用字符串的Length属性。

string str = "Hello, world!";
int length = str.Length; // 返回字符串的长度

字符串的Length属性返回的是字符串中字符的数量。例如在上面的例子中,字符串长度为 13,因为它包含 13 个字符。

但需要注意的是,C# 中的字符串是 Unicode 字符串,因此一个字符可能会由多个 Unicode 码元(code point)组成。在这种情况下,Length属性返回的是码元的数量,而不是字符的数量。

例如,在 Unicode 中,字母“é”可以表示为一个字符,也可以表示为两个码元:“e”和“´”。在 C# 中,如果字符串包含了这个字符,那么它的长度将为 2。

string str = "café";
int length = str.Length; // 返回 4,因为这个字符串实际上包含了 5 个码元,但 C# 中认为“é”的长度为 2

如果要计算字符串中实际包含的字符数量,可以使用StringInfo类。这个类包含了一些有用的方法,例如LengthInTextElements,该方法返回字符串中字符的数量,而不是码元的数量。

string str = "café";
int length = new System.Globalization.StringInfo(str).LengthInTextElements; // 返回 4,因为这个字符串实际上包含了 4 个字符

总之,在编写 C# 程序时,要时刻注意字符串的长度和字符数量,以避免潜在的 Bug。