如果我有一個名稱由用空格隔開一個以上的部分,我想:如何獲得第一,並用空格分隔字符串的最後一個部分
the first name + " " + the last name.
有什麼方法來做到這一點。
沒有規則,除了空格分隔的名稱。
有任何數量的部件。
例子:
john depp lennon
要:
john lennon
如果我有一個名稱由用空格隔開一個以上的部分,我想:如何獲得第一,並用空格分隔字符串的最後一個部分
the first name + " " + the last name.
有什麼方法來做到這一點。
沒有規則,除了空格分隔的名稱。
有任何數量的部件。
例子:
john depp lennon
要:
john lennon
string sString = "john depp lennon";
string[] sArray = sString.Split(' ');
string sStartEnd = sArray[0] + " " + sArray[sArray.Count()-1]; // "john lennon"
string str = "john depp lennon";
string[] data = str.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
string result = string.Format("{0} {1}", data.First(), data.Last());
既然你在標籤中提到LINQ,我給你的是,進入跳過驗證一部分(只有「Johm」)或者什麼也不輸入,那將是:
確保您有:
using System.Linq;
然後:
var nameParts = name.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
var fullName = string.Format("{0} {1}", nameParts.First(), nameParts.Last());
Thise將爲快樂路徑做的工作
如果我們要檢查邊緣的情況下,我們可以添加額外的檢查:
static string GetName(string nameEntry)
{
// assuming .NET 4, or use string.IsNullOrEmpty(),
// as we are protected later from white space-only text
if(string.IsNullOrWhiteSpace(nameEntry))
return string.Empty; // Or throw error. Your choice
var nameParts = nameEntry.Split(new[] { ' ' },
StringSplitOptions.RemoveEmptyEntries);
if(!nameParts.Any()) return string.Empty(); // Or throw error. Your choice
if(nameParts.Length == 1)
return nameParts.First();
var fullName = string.Format("{0} {1}", nameParts.First(), nameParts.Last());
return fullName;
}
這取決於你想返回,如果只有一個名字..像什麼「波諾..這將retrun‘波諾波諾’..還有,我只是用sArray.Length-1 – 2011-12-25 11:58:05
唯一的問題複合名稱!!!!它以最後一部分作爲姓。 – 2011-12-25 15:32:16