繁体   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