通过如下方式可以获取字符串的第一个字符吗?
MyString.ToCharArray[0]
Mystring[0]
应该足够了。
尝试这样做:
string s1="good";
string s=s1.Substring(0,1);
您可以使用LINQ
char c = mystring.FirstOrDefault()
如果字符串为空,它将等于'\0'
。
MyString[0]
与 MyString.ToCharArray()[0]
的区别在于前者将字符串视为只读数组,而后者则创建一个新的数组。前者在大多数情况下都更快(也更容易),但如果你需要一个方法来接受数组或者想改变数组时,ToCharArray()
是必须的。如果不知道该字符串是否为非空字符串,可以这样做:string.IsNullOrEmpty(MyString) ? (char?)null : MyString[0]
该函数返回一个char?
,如果适用,则为null或字符串中的第一个字符。
char?
作为一种包含“没有第一个字符”的可能性的方式。 - ToolmakerSteve另一种方法:
string mystr = "hello";
MessageBox.show(mystr.Substring(0, 1));
或者你可以这样做:
MyString[0];
从C# 8.0+开始,我们可以使用范围索引器语法。
下面的代码:
var name = "Dotnet".Substring(0, 1)
可以使用范围语法进行编写:
var name = "Dotnet"[..1]
如果输入字符串小于范围索引,上述代码将抛出异常。这个LINQ将解决这个问题:
var name = "Dotnet".Take(1).ToArray()
MyString.ToCharArray()[0]
。MyString[0]
。以下示例可以帮助某人获取字符串的第一个字符
string anyNameForString = "" + stringVariableName[0];
char[] chars = str.ToCharArray();
,然后使用char first = chars[0];
。您也可以将其简化为str.ToCharArray()[0];
。无论哪种方式,都要确保检查字符串不为空且至少有一个字符-您可以使用if(!String.IsNullOrEmpty(str))
来进行检查。 - Kobichar
)还是第一个字符(character
)?如果你尝试这个并且看起来有效,再试试或者
, 这两个在我使用的一个用C#编写的程序中失败了,出现了这个确切的错误。 - hippietrailString.Normalize
,使字符串更容易分析,然后编写自定义代码来提取每个Unicode代码点
,并确定哪些代码点是字符的起始点,哪些是添加变音符号或其他控制目的的代码点。还发现https://dev59.com/w18d5IYBdhLWcg3wTQsn#26977869提到了概念**字符**的一些微妙之处。 - ToolmakerSteve