Java 将arraylist转换为html表

Java 将arraylist转换为html表,java,html,servlets,arraylist,Java,Html,Servlets,Arraylist,如何将arraylist检索到html表中 我的arraylist: [ 1, 2011-05-10, 1, 22.0, 2, 2011-05-10, 2, 5555.0, 3, 2011-05-11, 3, 123.0, 4, 2011-05-11, 2, 212.0, 5, 2011-05-30, 1, 3000.0, 6, 2011-05-30, 1, 30.0, 7, 2011-06-06, 1, 307.0, 8, 2011-06-06, 1,

如何将arraylist检索到html表中

我的arraylist:

[
1, 2011-05-10,  1,  22.0, 
2, 2011-05-10,  2,  5555.0, 
3, 2011-05-11,  3,  123.0, 
4, 2011-05-11,  2, 212.0, 
5, 2011-05-30,  1,  3000.0, 
6, 2011-05-30,  1,  30.0, 
7, 2011-06-06,  1,  307.0, 
8, 2011-06-06,  1,  307.0 ]

out.println("<html>");
        out.println("<head>");
        out.println("<title>Counter</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<table border=\"1\">");
        out.println("<tr>");
        for (int i = 0; i < ex.getExpenses().size(); i++) {
            out.println("<td>" + ex.getExpenses().get(i) + "</td>");

            if (i>0 && i%4==0) {
                out.println("</tr><tr>");

            }

        }
        out.println("</tr>");
        out.println("</table>");
        out.println("</body>");
        out.println("</html>"); 
替换

    for (int i = 0; i < ex.getExpenses().size(); i++) {
        out.println("<td>" + ex.getExpenses().get(i) + "</td>");
        if (i>0 && i%4==0) {
            out.println("</tr><tr>");
        }
    }
for(int i=0;i0&&i%4==0){
out.println(“”);
}
}

for(int i=0;i0&&i%4==0){
out.println(“”);
}
out.println(“+ex.getExpenses().get(i)+”);
}

顺便说一下。创建包含4个字段的单独类
费用
。将其转换为html将更简洁、更容易。您可以编写特殊的单独方法将
费用
转换为html表格行。

i
更改为
(i+1)

[
1, 2011-05-10,  1,  22.0, 
2, 2011-05-10,  2,  5555.0, 
3, 2011-05-11,  3,  123.0, 
4, 2011-05-11,  2, 212.0, 
5, 2011-05-30,  1,  3000.0, 
6, 2011-05-30,  1,  30.0, 
7, 2011-06-06,  1,  307.0, 
8, 2011-06-06,  1,  307.0 ]
out.println(“”);
out.println(“”);
out.println(“计数器”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
对于(int i=0;i0&(i+1)%4==0){
out.println(“”);
}
}
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
第一件事: 将arrylist放入单独的变量中,然后使用foreach对其进行Itate,而不是反复调用Get()和Get(i),然后更改if条件

if ((i+1)%4==0) {
          out.println("</tr><tr>");
     }
if((i+1)%4==0){
out.println(“”);
}
第二件事:
使用
StringBuilder
类连接输出字符串,然后仅打印一个
输出。打印

使用单独的计数器变量-将其初始化为1,然后检查
计数%4=0
或调整条件以绘制新行:if(i>0&(i+1)%4==0){您能告诉我在代码中初始化它的位置并循环它吗,因为我已经尝试过了,但得到的只是一张凌乱的表格谢谢,我刚刚读了您的第二条评论,它工作得很好。再次感谢!为什么您要在最后输出一个无用的空行?为什么我%4==1?
    for (int i = 0; i < ex.getExpenses().size(); i++) {
        if (i>0 && i%4==0) {
            out.println("</tr><tr>");
        }
        out.println("<td>" + ex.getExpenses().get(i) + "</td>");
    }
[
1, 2011-05-10,  1,  22.0, 
2, 2011-05-10,  2,  5555.0, 
3, 2011-05-11,  3,  123.0, 
4, 2011-05-11,  2, 212.0, 
5, 2011-05-30,  1,  3000.0, 
6, 2011-05-30,  1,  30.0, 
7, 2011-06-06,  1,  307.0, 
8, 2011-06-06,  1,  307.0 ]

out.println("<html>");
        out.println("<head>");
        out.println("<title>Counter</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<table border=\"1\">");
        out.println("<tr>");
        for (int i = 0; i < ex.getExpenses().size(); i++) {
            out.println("<td>" + ex.getExpenses().get(i) + "</td>");

            if (i>0 && (i+1)%4==0) {
                out.println("</tr><tr>");

            }

        }
        out.println("</tr>");
        out.println("</table>");
        out.println("</body>");
        out.println("</html>"); 
if ((i+1)%4==0) {
          out.println("</tr><tr>");
     }