C#:如何获取字符串的第一个字符?

时间:2010-10-07 04:59:45

标签: c# string

通过执行以下操作可以检索字符串的第一个char吗?

MyString.ToCharArray[0]

14 个答案:

答案 0 :(得分:327)

只需MyString[0]。这使用String.Chars索引器。

答案 1 :(得分:44)

Mystring[0]应该足够了

答案 2 :(得分:16)

MyString[0]MyString.ToCharArray()[0]之间的区别在于前者将字符串视为只读数组,而ToCharArray()创建新数组。对于几乎任何可行的方法,前者会更快(并且更容易),但如果你有一个需要接受数组的方法,或者你想要更改数组,那么ToCharArray可能是必要的。

如果不知道字符串是非空且非空,则可以执行以下操作:

string.IsNullOrEmpty(MyString) ? (char?)null : MyString[0]

,根据需要返回null的char?或字符串中的第一个字符。

答案 3 :(得分:14)

您可以使用LINQ

char c = mystring.FirstOrDefault()

如果字符串为空,它将等于'\0'

答案 4 :(得分:12)

试试这个,

string s1="good"; string s=s1.Substring(0,1);

答案 5 :(得分:6)

另一种方法:

string mystr = "hello";
MessageBox.show(mystr.Substring(0, 1));

答案 6 :(得分:5)

或者你可以这样做:

MyString[0];

答案 7 :(得分:4)

我认为您正在寻找MyString.ToCharArray()[0]

:)

但您也可以使用MyString[0]

答案 8 :(得分:2)

以下示例从字符串中获取第一个字符可能会对某人有所帮助

string anyNameForString = "" + stringVariableName[0];

答案 9 :(得分:0)

MyString.Remove(1,2);也可以

答案 10 :(得分:0)

您的问题的答案是否定的。

正确是MyString [字符位置]。对于您的情况MyString [0],0是任何字符串的第一个字符。

用'(单引号)指定字符值,例如x字符值写为'x'。

用“(双引号)指定字符串值,就像x字符串值写为” x“。

所以Substring()方法也不返回字符,Substring()方法返回字符串!!!

字符串是字符数组,最后一个字符必须为'\ 0'(空)字符。那就是字符数组和字符串(这是一个字符数组,最后一个字符作为“字符串标记的结尾”'\ 0'null)之间的区别。

还要注意,“ x”不等于“ x”。 因为“ x”实际上是'x'+'\ 0'。

答案 11 :(得分:0)

在C#8中,您可以使用范围。

myString[0..Math.Min(myString.Length, 1)]

?之后添加myString,以处理null字符串。

答案 12 :(得分:0)

也许这会有所帮助。我正在使用 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";
    }
}

答案 13 :(得分:-2)

从字符串中获取char可能取决于enconding(字符串默认值为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);