为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用两个不同长度的数组打印表中的值

如何使用两个不同长度的数组打印表中的值

翻过高山走不出你 2021-12-22 20:19:04
我想创建一个包含两个不同维度的不同数组的表,但执行后它没有给我正确的输出。我有以下代码:String rowHeadingkeys[] = new String[] {"heading1","heading2","heading3","heading4","heading5","heading6","heading7","heading8"};String rowValuekeys[] = new String[] {"Text1","Text2","Text3","Text4","Text5",                                    "Text6","Text7","Text8","Text9","Text10",                                    "Text11","Text12","Text13","Text14","Text15",                                    "Text16","Text17","Text18","Text19","Text20",                                    "Text21","Text22","Text23","Text24"};    for(int i = 0;i<rowHeadingkeys.length;i++) {        if(rowHeadingkeys!=null) {            patientMonitoringTable.addCell(createCell(rowHeadingkeys[i],                    PDFUtil.BOLD_FONT,1,Element.ALIGN_LEFT));            for(int j = 0;j<rowValuekeys.length/rowHeadingkeys.length;j++) {                patientMonitoringTable.addCell(createCell(svo.getFields().get(rowValuekeys[j]).getValue(),                        PDFUtil.FONT,1,Element.ALIGN_LEFT));            }        }}我想让它像下面这样:| heading1 | Text1  | Text2  | Text3  |    | heading2 | Text4  | Text5  | Text6  |    | heading3 | Text7  | Text8  | Text9  |    | heading4 | Text10 | Text12 | Text13 |    | heading5 | Text14 | Text15 | Text16 |    | heading6 | Text17 | Text18 | Text19 |    | heading7 | Text20 | Text21 | Text22 |    | heading8 | Text23 | Text24 | Text24 |如何实现这一目标?
查看完整描述

2 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

我猜你会得到 Text1 | 文本 2 | 文本 3 | 对于每个标题。


您不应该在每个循环中分配 j = 0。在两个 for 循环和内部 for 循环之外初始化一个 int index=0 应该是这样的。


for(int j = index; j<index + (rowValuekeys.length/rowHeadingkeys.length);j++){


}

index+=rowValuekeys.length/rowHeadingkeys.length;

编辑:


更好的解决方案是:


int innerIndex = 0;

for(int i = 0;i<rowHeadingkeys.length;i++) {


    if(rowHeadingkeys!=null) {


        patientMonitoringTable.addCell(createCell(rowHeadingkeys[i],

                PDFUtil.BOLD_FONT,1,Element.ALIGN_LEFT));


        for(int j = 0;j<rowValuekeys.length/rowHeadingkeys.length;j++) {

      if(innerIndex < rowValuekeys.length)

            patientMonitoringTable.addCell(createCell(svo.getFields().get(rowValuekeys[innerIndex]).getValue(),

                    PDFUtil.FONT,1,Element.ALIGN_LEFT));

           innerIndex++;

        }


    }

}


查看完整回答
反对 回复 2021-12-22
?
慕田峪9158850

TA贡献1794条经验 获得超8个赞

如果您想要第 1 个项目的第 2 个列表中的 3 个项目:


for(int i = 0; i < rowHeadingkeys.length;i++) {


    if(rowHeadingkeys!=null) {


        patientMonitoringTable.addCell(createCell(rowHeadingkeys[i],

                PDFUtil.BOLD_FONT,1,Element.ALIGN_LEFT));


        for(int j = 0; j < 3; j++) {


            patientMonitoringTable.addCell(createCell(svo.getFields().get(rowValuekeys[3 * i + j]).getValue(),

                    PDFUtil.FONT,1,Element.ALIGN_LEFT));

        }

    }

}


查看完整回答
反对 回复 2021-12-22
  • 2 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号