繁体   English   中英

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

[英]C#: how to get first char of a string?

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

MyString.ToCharArray[0]

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

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]

哪个返回一个char? 为空或字符串中的第一个字符,视情况而定。

或者你可以这样做:

MyString[0];

只是另一种方法:

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

我想你正在寻找这个MyString.ToCharArray()[0]

:)

但是你也可以使用MyString[0]

从 C# 8.0+ 开始,我们可以使用范围索引器语法。

以下代码:

var name = "Dotnet".Substring(0, 1)

可以使用范围语法编写:

var name = "Dotnet"[..1]

在 Dotnet fiddle 中尝试一下

有关更多示例,请参阅官方文档

如果输入字符串小于范围索引,上面的代码将抛出。 此 LINQ 将防止该问题:

var name = "Dotnet".Take(1).ToArray()

在 Dotnet fiddle 中尝试一下

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

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() 方法返回一个字符串!!!

字符串是一个字符数组,最后一个字符必须是'\\0'(空)字符。 这就是字符数组和字符串(它是一个字符数组,最后一个字符为“字符串结束标记”'\\0' null。

还要注意“x”不等于“x”。 因为“x”实际上是'x'+'\\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";
    }
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM