簡體   English   中英

在最后一個空格后拆分字符串

[英]Splitting a string after the last space

我正在制作一個同步到數據庫的程序,它接受名稱,所以我想在最后一個“空格”之后將解析的字符串拆分為 2 個字符串。

例如,將名稱“John Doe Jackson”拆分為:john Doe 和 Jackson

到目前為止,我做了什么我得到了姓氏:

public static string getLastName(string fullname)
{
    string lastName = fullname.Split(' ').LastOrDefault();
}

如何返回字符串的其余部分,所以我有類似的東西:

姓名:John Doe

姓氏:傑克遜


編輯:通過這樣做來做到這一點,這不是最干凈的方式,但它完成了工作!

     public static string getLastName(string fullname)
    {
        string lastName = fullname.Split(' ').LastOrDefault();
        Console.WriteLine(lastName);
        return lastName;
    }

    public static string getFirstName(string fullname)
    {
        var parts = fullname.Split(' ');
        var lastName = parts.LastOrDefault();
        var firstName = string.Join(" ", parts.Take(parts.Length - 1));
        return firstName;
    }

你可以嘗試這樣的事情:

var parts = fullname.Split(' ');
var lastName = parts.LastOrDefault();
var firstName = string.Join(" ",parts.Take(parts.Length-1));

我會這樣做:

var lastSpaceIndex = fullName.LastIndexOf(' ');
var firstName = fullName.Substring(0, lastSpaceIndex);
var lastName = fullName.Substring(lastSpaceIndex+1);

在這里看到它的行動

您可以使用string.Join

public static string getFirstName(string fullname)
{
    return string.join(" ",fullname.Split(' ').Take(fullname.Split(' ').Count()-1));

}
string name = "John Doe Jackson";
var names = name.Split(' ');
string firstname = names[0] + " " + names[1];
string lastname = names[2];

另一個版本基於接受的答案,但保護字符串為空/空,並且在 fullName 中沒有空格的情況下將輸入保留為 firstName

        if (string.IsNullOrWhiteSpace(fullName)) return new KeyValuePair<string, string>(string.Empty, string.Empty);

        var parts = fullName.Trim().Split(' ');
        if (parts.Length == 1) return new KeyValuePair<string, string>(parts[0], string.Empty);

        var firstName = string.Join(" ", parts.Take(parts.Length - 1));
        var lastName = parts.LastOrDefault();

        return new KeyValuePair<string, string>(firstName, lastName);

暫無
暫無

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

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