簡體   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