簡體   English   中英

你如何抓住字符串中的第一個字母?

[英]How do you grab the first letter in a string?

我正在使用一個有3個字段的實體(Employee):FirstName,LastName和Login

我想獲取姓氏和firstname字段的第一個字母,並將其寫入登錄字段。 我如何獲取名字的第一個字母?

謝謝你的幫助。

就像這樣簡單:

if (!string.IsNullOrEmpty(Employee.FirstName))
{
    string firstLetter = Employee.FirstName.SubString(0, 1);
}

有了這個,你得到第一個字母作為字符串,並用這個字符:

if (!string.IsNullOrEmpty(Employee.FirstName))
{
    char firstLetter = Employee.FirstName[0];
}

要獲取第一個字符 (不一定是字母),請在字符串中使用索引:

char c = employee.FirstName[0];

您可能還想首先檢查字符串是否為非空且非空並剝離前導空格,並且第一個字符實際上是一個字母:

if (employee != null && employee.FirstName != null) {
    string name = employee.FirstName.TrimStart();
    if (name.Length > 0) {
        char firstChar = name[0];
        if (char.IsLetter(firstChar)) {
            employee.Login = firstChar.ToString();
        }
    }
}
char firstCharOfFirstName = someEmployee.FirstName[0];

如果FirstName字段可以有前導空格,您可以執行以下操作:

char firstCharOfFirstName = someEmployee.FirstName.Trim()[0];

(正如其他答案所提到的,檢查空字符串和null字符串是件好事)

請記住,如果SubString()或FirstName [0]將拋出ArgumentOutOfRangeExceptionIndexOutOfRangeException

FirstName == string.Empty

所以,這段代碼至少會避免異常:

if(str2 != null)
{
    char result = (str2.Length > 0)
        ? str2[0]
        : (char)0;
}

如果字符串為空,請不要忘記此代碼將返回錯誤結果!

如果名字可能為空,則在獲取第一個字母時必須檢查:

FirstName.Substring(0, Math.Min(FirstName.Length, 1))

如果FirstName字符串為空,這將為您提供一個空字符串,否則將第一個字符作為字符串,以便您可以將其與姓氏連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM