0

所以我得到了这个带有书籍信息的字符串:

String data = "Harry Potter 1 | J.K. Rowling| 350 | Fantasy | Hunger Games | Suzanne Collins | 500 | Fantasy | The KingKiller Chronicles | Patrick Rothfuss | 400 | Heroic Fantasy" 

然后我拆分字符串:

String splitData = data.split("\\|"); 

这将导致哈利波特 1 处于位置 0,JK 罗琳处于位置 1,350 处于位置 2,等等。

您可能会在这里看到一个模式,即位置 0 是书名,位置 1 是作者,位置 2 是页数,位置 3 是类型。然后它再次从位置 4 开始,这又是一本书的标题,位置 5 是书的作者,等等。我假设你明白我要去哪里。

现在假设我想分别显示所有这些元素,比如分开打印所有标题、所有作者、所有页数等。我将如何实现这一点?

这应该是可能的,因为标题在 0、4、8 中。作者在 1、5、9 等中。

4

2 回答 2

4
String data = "Harry Potter 1 | J.K. Rowling| 350 | Fantasy | Hunger Games | Suzanne Collins | 500 | Fantasy | The KingKiller Chronicles | Patrick Rothfuss | 400 | Heroic Fantasy"; 
    String[] splitData = data.split("\\|");
    for(int i=0; i<splitData.length;i++) {
        if(i % 4 == 0) System.out.println("Title: "+splitData[i]);
        else if(i % 4 == 1) System.out.println("Author: "+splitData[i]);
        else if(i % 4 == 2) System.out.println("Pages: "+splitData[i]);
        else if(i % 4 == 3) System.out.println("Genre: "+splitData[i]);
    }

很难,不是吗?

于 2012-04-09T12:38:11.557 回答
2

您可以回想一下,for循环允许您在最后一个表达式中执行任何修改,而不仅仅是i++. 对于这种情况,您可以使用i += 4. 然后在每次迭代中,名称将是 ne at splitData[i],作者 at splitData[i+1],页数 atsplitData[i+2]和流派 at splitData[i+3]

于 2012-04-09T12:36:36.900 回答