字符串的第一个字符可以通过以下操作检索吗?
MyString.ToCharArray[0]
字符串的第一个字符可以通过以下操作检索吗?
MyString.ToCharArray[0]
当前回答
从字符串中获取字符可能取决于编码(字符串默认为UTF-16)
https://stackoverflow.com/a/32141891
string str = new String(new char[] { '\uD800', '\uDC00', 'z' });
string first = str.Substring(0, char.IsHighSurrogate(str[0]) ? 2 : 1);
其他回答
我认为你正在寻找这个MyString.ToCharArray()[0]
:)
但是你也可以使用MyString[0]。
MyString。删除(1、2);同样适用
MyString[0]和MyString.ToCharArray()[0]之间的区别是前者将字符串视为只读数组,而ToCharArray()创建一个新数组。前者在几乎任何情况下都更快(也更简单),但如果您有一个需要接受数组的方法,或者如果您想更改数组,则可能需要ToCharArray。
如果字符串不是非空或非空的,你可以这样做:
string.IsNullOrEmpty(MyString) ? (char?)null : MyString[0]
它返回一个char?null或字符串中的第一个字符,视情况而定。
也许这个会有帮助。我使用txtModel_Leave事件,然后创建方法来检测主文本框中的第一个字符。
private void txtMain_Leave(object sender, EventArgs e)
{
detectFirstChar();
}
private void detectFirstChar()
{
string mystr = txtModel.Text;
if (String.IsNullOrEmpty(txtModel.Text))
{
txtAwalan.Text = "";
}
else if (mystr.Substring(0, 1) == "F")
{
txtKategori.Text = "Finishing";
}
else if((mystr.Substring(0, 1) == "H"))
{
txtKategori.Text = "Half";
}
else
{
txtKategori.Text = "NONE";
}
}
在c# 8中,你可以使用范围。
myString[0..Math.Min(myString.Length, 1)]
加一个?在myString之后处理空字符串。