C#:如何获取字符串的第一个字符?
C#: how to get first character of a string?
我们已经有 a question about getting the first 16-bit char
of a string.
这包括问题代码:
MyString.ToCharArray[0]
和接受的答案代码:
MyString[0]
我想这有一些用途,但是当字符串包含文本时,我们希望都知道单个 16 位字符不能容纳一个字符,即使在我们实际指的限制意义上也是如此 "codepoint".
我是一名程序员,但不是 C# 程序员。我只是想帮助在线同事修复这样的错误,以防你觉得这是一个太基础的问题。
因此,如果我们在 C# 中有一个 char
数组中的字符串,以正确的 UTF-16 编码,可能包括一个代理对作为第一个 character/codepoint,因此可能由两个 char
s,我如何获得第一个字符?
(我天真地假设微软为此提供了一个字符串函数,我不必手动检查代理对。)
使用这个:
str = str.Substring(0, 1);
或
str[0];
或
str.FirstOrDefault();
您可以使用 StringInfo class,它可以识别代理项对和多字节字符。
var yourstring = "test"; // First char is multibyte char.
var firstCharOfString = StringInfo.GetNextTextElement(yourstring,0);
我们已经有 a question about getting the first 16-bit char
of a string.
这包括问题代码:
MyString.ToCharArray[0]
和接受的答案代码:
MyString[0]
我想这有一些用途,但是当字符串包含文本时,我们希望都知道单个 16 位字符不能容纳一个字符,即使在我们实际指的限制意义上也是如此 "codepoint".
我是一名程序员,但不是 C# 程序员。我只是想帮助在线同事修复这样的错误,以防你觉得这是一个太基础的问题。
因此,如果我们在 C# 中有一个 char
数组中的字符串,以正确的 UTF-16 编码,可能包括一个代理对作为第一个 character/codepoint,因此可能由两个 char
s,我如何获得第一个字符?
(我天真地假设微软为此提供了一个字符串函数,我不必手动检查代理对。)
使用这个:
str = str.Substring(0, 1);
或
str[0];
或
str.FirstOrDefault();
您可以使用 StringInfo class,它可以识别代理项对和多字节字符。
var yourstring = "test"; // First char is multibyte char.
var firstCharOfString = StringInfo.GetNextTextElement(yourstring,0);