Java:从数组中存储和序列化项目

时间:2013-05-30 09:45:11

标签: java serialization for-loop

我知道这可能是一个非常简单的问题,但我无法让我的代码正常工作。我需要在字段中写入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");

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

2 个答案:

答案 0 :(得分:2)

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

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

为了使代码更好更清晰,使用StringBuilder类创建String。

这一行:

serializer.text("RespuestaString");

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

serializer.text(RespuestaString);

答案 1 :(得分:1)

<强>更新 答案现在使用StringBuilder来提高性能。

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

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");