假设我有一个带有如下字符串的 foreach 循环:
String newStr='';
String str='a b c d e';
foreach(String strChar in str.split(' ')) {
newStr+=strChar+',';
}
结果会是这样的:a,b,c,d,e,
但我想要的是 a,b,c,d,e
没有最后一个逗号。我通常把最后一个逗号分开,但这看起来很难看而且超重。有什么轻量级的方法可以做到这一点吗?
这个问题的补充:是否有任何简单的解决方案可以将“and”添加到结果类似于:用户输出的 a、b、c、d 和 e
?
p.s.: 我知道我可以在示例中使用替换方法,但这不是我想要的,因为在大多数情况下你不能使用它(例如当你构建一个 sql 字符串时)。
最佳答案
我会使用string.Join
:
string newStr = string.Join(",", str.Split(' '));
或者,您可以在循环体的开始处添加分隔符,但不是在第一轮。
如果您想继续手动执行此操作,我建议您使用 StringBuilder
。事实上,使用 StringBuilder
,您可以无条件地附加分隔符,然后减少末尾的长度以修剪那一端。
您还写道:
for example when you build a sql string
构建这样的 SQL 字符串很少是个好主意。特别是,您应该绝对不在此处使用用户输入的字符串 - 请改用参数化 SQL。构建 SQL 通常是 ORM 代码的领域...在这种情况下,使用现有的 ORM 通常比自己动手更好 :)
关于c# - 合并字符串的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14876489/