在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<
我不需要字符串末尾的<
我检查了这个链接,但无法访问任何地方
这会是你想要做的吗?
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或为空——也就是说,在那个之后添加最后一个逗号时什么都并没有。