我正在以这样的格式在网页上生成输出
({ “1”: “杰夫”, “2”: “汤姆”, “3”: “迈克尔”,})
为此,基本上这是我正在使用的代码
Response.Write("(" + "{");
//
for (Int32 i = 0; i < k.Length; i++)
{
Response.Write(Convert.ToString(k.GetValue(i)) + ",");
}
//
Response.Write("}" + ")");
注意我的输出,在Michael之后“有一个我不想要的逗号,因为这是最后一个vaue但是这个出现是因为,
在for循环中。如何防止这个/删除这个最后一个逗号从出现?
我的输出应为({"1":"Jeff","2":"Tom","3":"Michael"})
(此处的最后一个值后面没有逗号)
答案 0 :(得分:4)
假设k
是一个字符串数组
List<string> tokens = k.ToList<string>();
Response.Write("({" + String.join<string>(",", tokens) + "})");
答案 1 :(得分:2)
Simplified和VB.Net,但我想你会得到它:
Dim values As New List(Of String)(New String() {"1:Jeff", "2:Tom", "3:Michael"})
Dim result As String = "({" & String.Join(",", values.ToArray) & "})"
如果k是像Array,List等的集合。
答案 2 :(得分:1)
根据迭代次数和发生频率,使用StringBuilder。
StringBuilder sb = new StringBuilder();
for (Int32 i = 0; i < k.Length; i++)
{
sb.Append(",");
sb.Append(Convert.ToString(k.GetValue(i)));
}
if (sb.Length > 0) {
sb.Remove(0,1);
}
Response.Write(String.Format("({{{0}}})", sb.ToString()));
另一种方式是:但是,它必须检查每次迭代。
StringBuilder sb = new StringBuilder();
for (Int32 i = 0; i < k.Length; i++)
{
if (sb.Length > 0) {
sb.Append(",");
}
sb.Append(Convert.ToString(k.GetValue(i)));
}
Response.Write(String.Format("({{{0}}})", sb.ToString()));
答案 3 :(得分:0)
如果你更改输出的方式来编写集合中的第一个对象,那么每个用逗号开头的人都可以正常工作。
Response.Write("(" + "{");
//
Response.Write(Convert.ToString(k.GetValue(0)));
for (Int32 i = 1; i < k.Length; i++)
{
Response.Write("," + Convert.ToString(k.GetValue(i)));
}
//
Response.Write("}" + ")");
另一种方法是写入stringbuilder并输出除最后一个字符之外的所有字符
答案 4 :(得分:0)
你可以减少你的循环而不是增加......比如
for(Int32 i = k.Length; i&gt; 0; i - )
并放:if(i == 1)removeComa;
答案 5 :(得分:0)
Response.Write("(" + "{");
//
for (Int32 i = 0; i < k.Length; i++)
{
Response.Write(Convert.ToString(k.GetValue(i)) + (i == k.Length - 1 ? "" : ","));
}
//
Response.Write("}" + ")");
答案 6 :(得分:0)
我最喜欢的修复方法之一是使用prepend代替,只在第一项之后设置逗号作为分隔符值(对不起VB):
Dim seperator As String = ""
For i As Integer = 0 To k.Length
Response.Write(seperator + Convert.ToString(k.GetValue(i)))
seperator = ","
Next
答案 7 :(得分:0)
在循环中,只需在计数到达最后一位数字时使用插入“中断”并且已经处理过了?