我试图通过字符串的ArrayList进行迭代,这些字符串由已解析的HTML行组成。如何使用双for循环打印0-353,同时每4打印一行?谢谢你的帮助
我必须做的是去每一行,看看它是世界,国家,成员,或活动。我将把所有4个数据都添加到一个对象中,每次填充完该对象时,我必须启动一个新对象来添加到对象的另一个数组列表中。
<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>我现在的代码是:
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("-----------------");
}发布于 2017-09-12 02:14:06
我建议使用%这个剩余操作符
参考https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html
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("---------");
}
}输出是
0
1
2
3
---------
4
5
6
7
---------
8
9
10
11
---------如果代码在下面
for(int i=0;i<strs.size();i++) {
if(i%4 ==0) {
System.out.println("---------");
}
System.out.println(i);
}输出将
------------ //will more one ----- because 0 % 4 = 0
0
1
2
3
------------
4
5
6
7
------------
8
9发布于 2017-09-12 01:37:25
它只打印0-351的原因是
i<(strs.size() / 4)由于strs.size() = 354或353(来自注释),您的外部循环将变成
for(int i=0;i< 88;i++)因此,您可以获得87*4 + 3 => 351的最大值。
您可以更改为迭代如下:
for(int i=0;i<strs.size();i++) {
if(i%4 ==0) {
System.out.println("---------");
}
System.out.println(i);
}https://stackoverflow.com/questions/46166532
复制相似问题