在C#中,如何在字符串中间添加符号字符,而不是在字符串的开头或结尾添加符号字符

本文关键字:符号 字符 字符串 添加 开头 结尾 中间 | 更新日期: 2023-09-27 17:55:02

我有一个动态大小的字符串数组。

例如:

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值添加到一个字符串中,该字符串仅与一个特殊字符<符号合并。

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

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

我检查了这个链接,但无法访问任何地方

在C#中,如何在字符串中间添加符号字符,而不是在字符串的开头或结尾添加符号字符

这会是你想要做的吗?

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

你可以在这里查看更多关于聚合的信息。

或者你可以在你的代码中做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面临的问题是字符串数组的错误声明。它的元素比所需的多了一个,这导致它在数组的末尾成为Null元素。此数组与String.Join一起使用时,由于最后一个元素为null,导致末尾出现不需要的"<"。

将数组声明更改为:

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或为空——也就是说,在那个之后添加最后一个逗号时什么都并没有。