我需要一种方法在字符串中的每个字符后插入逗号.例如,如果我有字母串
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Run Code Online (Sandbox Code Playgroud)
我需要这样做,所以在从A到Z的每个字母之后都有一个逗号,我想保留字符串,而不是将它转换为字符数组或类似的东西.我不知道这是否可能,但它只是想要避免的东西.
我怎样才能做到这一点?最终结果应该是这样的:
"A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,"
Run Code Online (Sandbox Code Playgroud)
谢谢
SLa*_*aks 22
在.Net 4中:
str = String.Join<char>(",", str) + ",";
Run Code Online (Sandbox Code Playgroud)
.Net 4.0增加了一个String.Join需要的重载IEnumerable<T>.
此代码通过String转换来调用它IEnumerable<char>.
我需要显式指定泛型类型参数,否则它将调用params string[]重载(使用单个string).
Jon*_*eet 14
那么你必须做一些事来生成新的字符串.最简单的方法可能是在.NET 4中:
// string.Join won't put the trailing comma
string result = string.Join(",", (IEnumerable<char>) input) + ",";
Run Code Online (Sandbox Code Playgroud)
要么
string result = string.Join<char>(",", input) + ",";
Run Code Online (Sandbox Code Playgroud)
或者在.NET 3.5中,我们想要的重载不存在:
// string.Join won't put the trailing comma
string result = string.Join(",", input.Select(c => c.ToString())
.ToArray()) + ",";
Run Code Online (Sandbox Code Playgroud)
如果这些对您来说效率不高,您可以随时手动完成:
StringBuilder builder = new StringBuilder(input.Length * 2);
foreach (char c in input)
{
builder.Append(c);
builder.Append(',');
}
string result = builder.ToString();
Run Code Online (Sandbox Code Playgroud)