可以通过执行以下操作来检索字符串的第一个
char
吗?
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()
创建一个新数组。对于几乎任何可以工作的地方,前者都会更快(也更容易),但是如果您有一个需要接受数组的方法,或者您想更改数组,则ToCharArray
可能是必要的。
如果字符串不知道为非空和非空,你可以这样做:
string.IsNullOrEmpty(MyString) ? (char?)null : MyString[0]
它根据需要返回 null 或字符串中第一个字符的
char?
。
另一种方法:
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];
在 C# 8 中,您可以使用范围。
myString[0..Math.Min(myString.Length, 1)]
在
?
之后添加 myString
来处理 null
字符串。
MyString.Remove(1, 2);也有效
你的问题的答案是否定的。
正确的是 MyString[字符位置]。对于您的情况 MyString[0],0 是任何字符串的第一个字符。
字符值用 '(单引号)指定,例如 x 字符值写为 'x'。
字符串值用“(双引号)指定,就像这个 x 字符串值写为“x”。
所以 Substring() 方法也不会返回字符,Substring() 方法返回一个字符串!!!
字符串是一个字符数组,最后一个字符必须是“ ”(空)字符。这就是字符数组和字符串之间的区别(字符串是一个字符数组,最后一个字符为“字符串结束标记”' ' null。
还要注意“x”不等于“x”。 因为“x”实际上是“x”+“”。
也许这会有所帮助。我正在使用
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";
}
}
从字符串中获取字符可能取决于编码(字符串默认为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);