[英]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.