如何按订单打印3行数字?

时间:2014-03-27 05:47:33

标签: java jsp for-loop stringbuilder

<body>
    <%
        int apps = 11;
        out.println("<div>");
        out.println("<table>");
        StringBuilder Row1 = new StringBuilder();
        Row1.append("<tr>");
        StringBuilder Row2 = new StringBuilder();
        Row2.append("<tr>");
        StringBuilder Row3 = new StringBuilder();
        Row3.append("<tr>");
        for (int i = 0; i < apps; i++) {
            if (i % 2 == 0) {
                Row1.append("<td>" + i + "</td>");
            }
            if (i % 2 == 1) {
                Row2.append("<td>" + i + "</td>");
            }
        }
        Row1.append("</tr>");
        Row2.append("</tr>");
        out.println(Row1.toString());
        out.println(Row2.toString());
        out.println("</table>");
        out.println("</div>");
    %>
</body>

这是我的jsp页面,

目前我的输出为

0 1 2 3 4 5 6 7 8 9 10

现在我需要输出

第1行

0 3 6 9 12 15

第2行

1 4 7 10 13

第3行

2 5 8 11 14

如果我有100个数字,输出需要如上所述。

3 个答案:

答案 0 :(得分:0)

我是PHP开发人员,我是用php方式完成的。但逻辑是一样的..

<?php

$apps = 100;
for ($i = 0; $i < $apps; $i++) {
    if ($i % 3 == 0) {
        $row1 .= "<td>" .$i ."</td>";
    }
    if ($i % 3 == 1) {
        $row2 .= "<td>" .$i ."</td>";
    }
    if ($i % 3 == 2) {
        $row3 .= "<td>" .$i ."</td>";
    }
}
?>
<table>
<tr><?php echo $row1; ?></tr>
<tr><?php echo $row2;?></tr>
<tr><?php echo $row3; ?></tr>
</table>

更改适当的位置并检查..

答案 1 :(得分:0)

for (int i = 0; i < apps; i++) {
    if (i % 3 == 0) {
        Row1.append("<td>" + i + "</td>");
    } else if (i % 3 == 1) {
        Row2.append("<td>" + i + "</td>");
    } else if (i % 3 == 2) {
        Row3.append("<td>" + i + "</td>");
    }
}

<强> ADDITION

你还没有打印出第三排...... 尝试添加这个:

Row3.append("</tr>");
out.println(Row3.toString());

答案 2 :(得分:0)

我鼓励你停止在你的jsp页面中使用java代码,因为它会变得非常脆弱。另一种方法是使用JSTL。您的页面将被翻译成如下:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<body>
<table>
    <c:set var="apps" value="10"/>
    <tr>
    <c:forEach var="i" begin="0" end="${apps}" step="3">
       <td><c:out value="${i}"/></td>
    </c:forEach>
    </tr>
    <tr>
    <c:forEach var="i" begin="1" end="${apps}" step="3">
       <td><c:out value="${i}"/></td>
    </c:forEach>
    </tr>
    <tr>
    <c:forEach var="i" begin="2" end="${apps}" step="3">
       <td><c:out value="${i}"/></td>
    </c:forEach>
    </tr>
</body>
</html>

通过这种方式,您可以更轻松地在商务逻辑和视图逻辑(生成页面)之间保持清晰的分离。