簡體   English   中英

如何在字符串中間添加符號字符,但不在C#中字符串的開頭或結尾添加

[英]How to add a symbol character in the middle of string but not in the beginning or in the end of the string in C#

我有一個動態大小的字符串數組。

例如:

string[] UserName_arr = new string[usercount + 1]; 
// here usercount would be int value considering it as 4 so the array size would be 5.

我需要將每個UserName_arr值添加到一個字符串中,只與一個特殊字符< symbol合並。

當我使用此代碼main_UserName = String.Join("<", UserName_arr);

我得到的字符串為main_UserName =a1<a2<a3<我不需要<在我的字符串的末尾

我檢查了這個鏈接,但無法到達任何地方

這會是你想要做的嗎?

UserName_arr.Aggregate((x,y) => x + "<" + y);

您可以在此處查看有關Aggregate的更多信息

或者您可以在代碼中執行TrimEnd

main_UserName = String.Join("<", UserName_arr);
main_UserName = main_UserName.TrimEnd('<');

String.Join示例:

string[] dinosaurs = new string[] { "Aeolosaurus",
        "Deinonychus", "Jaxartosaurus", "Segnosaurus" };        
string joinedString = string.Join(", ", dinosaurs);
Console.WriteLine(joinedString);

輸出:

Aeolosaurus,Deinonychus,Jaxartosaurus,Segnosaurus

看有沒有到底。

請參見String.Join 此示例

編輯:

根據OP的評論和Vera rind的評論,OP面臨的問題是String數組的錯誤聲明。 它有一個元素超過了需要,導致在數組末尾是一個Null元素。 由於null last元素與String.Join一起使用時,此數組在String.Join導致不需要的“<”。

將數組聲明更改為:

string[] UserName_arr = new string[usercount]; 

或者在Join條件中檢查空字符串:

String.Join("<", UserName_arr.Where(x => string.IsNullOrEmpty(x) == false))

與評論中提到的'Vera rind'一樣,您可以省略數組中的空用戶名:

main_UserName = String.Join(
                         "<", 
                         UserName_arr.Where(name => !string.IsNullOrWhiteSpace(name));

問題是數組中的最后一個元素為null或為空 - 這就是在沒有任何內容之后添加最后一個逗號的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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