首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在数组列表中迭代,并每X次执行一次用于循环的操作?Java

如何在数组列表中迭代,并每X次执行一次用于循环的操作?Java
EN

Stack Overflow用户
提问于 2017-09-12 01:28:29
回答 2查看 89关注 0票数 1

我试图通过字符串的ArrayList进行迭代,这些字符串由已解析的HTML行组成。如何使用双for循环打印0-353,同时每4打印一行?谢谢你的帮助

我必须做的是去每一行,看看它是世界,国家,成员,或活动。我将把所有4个数据都添加到一个对象中,每次填充完该对象时,我必须启动一个新对象来添加到对象的另一个数组列表中。

代码语言:javascript
复制
<a id='slu-world-301' class='server-list__world-link'        href='http://oldschool.runescape.com/game?world=301'>Old School 1</a>
<td class='server-list__row-cell server-list__row-cell--country server-list__row-cell--US'>United States</td>
<td class='server-list__row-cell server-list__row-cell--type'>Free</td>
<td class='server-list__row-cell'>Trade - Free</td>
<a id='slu-world-302' class='server-list__world-link' href='http://oldschool.runescape.com/game?world=302'>Old School 2</a>
<td class='server-list__row-cell server-list__row-cell--country server-list__row-cell--GB'>United Kingdom</td>
<td class='server-list__row-cell server-list__row-cell--type'>Members</td>
<td class='server-list__row-cell'>Trade - Members</td>
<a id='slu-world-303' class='server-list__world-link' href='http://oldschool.runescape.com/game?world=303'>Old School 3</a>
<td class='server-list__row-cell server-list__row-cell--country server-list__row-cell--DE'>Germany</td>
<td class='server-list__row-cell server-list__row-cell--type'>Members</td>
<td class='server-list__row-cell'>-</td>

我现在的代码是:

代码语言:javascript
复制
for(int i=1;i<(strs.size() / 4) + 1;i++){
    for(int j=0;j<4;j++){
        System.out.println(???? WHAT DO I PUT HERE ????)
    }
        System.out.println("-----------------");
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-12 02:14:06

我建议使用%这个剩余操作符

参考https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html

代码语言:javascript
复制
0 % 4 = 0   
1 % 4 = 1   
2 % 4 = 2   
3 % 4 = 3   
4 % 4 = 0



for(int i = 0; i < strs.size(); i++){
    System.out.println(i);
    if (i%4 == 3) {
        System.out.println("---------");
    }
}

输出是

代码语言:javascript
复制
0
1
2
3
---------
4
5
6
7
---------
8
9
10
11
---------

如果代码在下面

代码语言:javascript
复制
for(int i=0;i<strs.size();i++) {
    if(i%4 ==0) {
        System.out.println("---------");
    } 
    System.out.println(i);
}

输出将

代码语言:javascript
复制
 ------------ //will more one ----- because 0 % 4 = 0
 0
 1
 2
 3
 ------------
 4
 5
 6
 7
 ------------
 8
 9
票数 1
EN

Stack Overflow用户

发布于 2017-09-12 01:37:25

它只打印0-351的原因是

代码语言:javascript
复制
i<(strs.size() / 4)

由于strs.size() = 354353(来自注释),您的外部循环将变成

代码语言:javascript
复制
for(int i=0;i< 88;i++)

因此,您可以获得87*4 + 3 => 351的最大值。

您可以更改为迭代如下:

代码语言:javascript
复制
for(int i=0;i<strs.size();i++) {
    if(i%4 ==0) {
        System.out.println("---------");
    } 
    System.out.println(i);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46166532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档