1

我知道这可能是一个非常简单的问题,但我无法让我的代码正常工作。我需要在一个字段中写入一个 XML 文件,例如:1-A,2-C,3-D,...25-A 为此我有项目总数 (1..25) 和我从另一个班级检索到的这些项目的答案。这是我用来编写这种 XML 的内容,以及我应该工作的内容。

for (int i=0;i<=30;i++){
                nRespuesta  = i+1;
                nRespuestaString = Integer.toString(nRespuesta);
                Respuesta = Verbal.getRespuestas(i);
                RespuestaString = nRespuestaString+"-"+Respuesta+",";

            }
serializer.startTag(null, "RESPUESTAS");
            serializer.text("RespuestaString");
            serializer.endTag(null, "RESPUESTAS");

使用此代码它只显示最后一项,我怎么能显示全部?谢谢

4

2 回答 2

2

首先,您使用值覆盖字符串而不是附加:

RespuestaString = nRespuestaString+"-"+Respuesta+",";

为了使代码更漂亮、更清晰,请使用 StringBuilder 类来创建字符串。

还有这一行:

serializer.text("RespuestaString");

只需将值“RespuestaString”放入 XML 中。我相信你想写:

serializer.text(RespuestaString);

于 2013-05-30T09:53:28.207 回答
1

UPDATE Answer 现在使用 StringBuilder 以获得更好的性能。

您需要连接字符串而不是在每次循环迭代时覆盖,因此将代码修改为以下内容:

StringBuilder sb = new StringBuilder();
for (int i=0;i<=30;i++){
                nRespuesta  = i+1;
                nRespuestaString = Integer.toString(nRespuesta);
                Respuesta = Verbal.getRespuestas(i);
                //Note the change on the line below
                sb.append(nRespuestaString).append("-").append(Respuesta).append(",");
            }
serializer.startTag(null, "RESPUESTAS");
            serializer.text(sb.toString());
            serializer.endTag(null, "RESPUESTAS");
于 2013-05-30T09:50:28.530 回答