[英]String.join array from last element
我有一个场景,我得到一个逗号分隔字符串LastName,FirstName。 我必须将其转换为FirstName LastName。
我的代码如下:
Public static void main(string [] args)
{
var str = "Lastname, FirstName":
var strArr = str.Split(',');
Array. Reverse(strArr);
var output = string.join(" ", strArr);
}
有没有更好的方法来做到这一点,比如在一行或使用LINQ?
是的,IEnumerables已经有一个反向扩展方法:
var output = string.Join(" ",str.Split(',').Reverse());
分割后使用Aggregate和Trim你的名字,你不需要反转。
str.Split(',').Aggregate((lname, fname) => fname.Trim() + " " + lname.Trim())
这会处理许多各种边缘情况。 你提到了一个,但没有把它包含在你的初始问题中,所以我假设可能还有其他问题。
var tests = new[]{"Lastname, FirstName", "Lastname, ", ", FirstName", "Lastname", "FirstName"};
foreach(var str in tests)
{
var strArr = str.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries)
.Where(x => !string.IsNullOrWhiteSpace(x))
.Reverse()
.Select(x => x.Trim());
var output = string.Join(" ", strArr);
Console.WriteLine(output);
}
很抱歉问这么愚蠢的问题,下面是我的新代码..
Public static void main(string [] args)
{
var str = "Lastname, FirstName":
var strArr = str.Split(',').Select(p=>p.Trim()).ToArray();
var output = string.join(" ", strArr.Reverse());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.