如果我的名称由多个由空格分隔的部分组成,并且我想获得:
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"
既然您在标签中提到了 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;
}
string str = "john depp lennon";
string[] data = str.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
string result = string.Format("{0} {1}", data.First(), data.Last());