簡體   English   中英

來自最后一個元素的String.join數組

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

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