在Java中处理包含模式的数据数组?

在Java中处理包含模式的数据数组?,java,arrays,split,Java,Arrays,Split,我得到了一个包含图书信息的字符串: 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("\\|");

我得到了一个包含图书信息的字符串:

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位,J.K.罗琳在第1350位在第2位,等等

您可能会在这里看到一种模式,即位置0是一本书的标题,位置1是作者,位置2是页数,位置3是流派。然后从第四个位置开始,这也是一本书的标题,第五个位置是这本书的作者,等等。我想你知道我要去哪里

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


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

您可以回忆起
for
循环允许您在最后一个表达式中执行任何修改,而不仅仅是
i++
。对于这种情况,可以使用
i+=4
。然后在每次迭代中,名称将在
splitData[i]
处出现,作者在
splitData[i+1]
处出现,页数在
splitData[i+2]
处出现,流派在
splitData[i+3]
处出现,您可以回忆起
for
循环允许您在最后一个表达式中执行任何修改,而不仅仅是
i++/code>。对于这种情况,可以使用
i+=4
。然后,在每次迭代中,名称将出现在
splitData[i]
,作者出现在
splitData[i+1]
,页数出现在
splitData[i+2]
,类型出现在
splitData[i+3]
String data=“哈利波特1 | J.K.罗琳| 350 |幻想|饥饿游戏|苏珊娜·柯林斯| 500 |幻想|国王杀手编年史|帕特里克·罗斯福斯| 400 |英雄幻想”;
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]);
    }
String[]splitData=data.split(“\\\\”); 对于(int i=0;i
String data=“哈利波特1 | J.K.罗琳| 350 |幻想|饥饿游戏|苏珊娜·柯林斯| 500 |幻想|国王杀手编年史|帕特里克·罗斯福斯| 400 |英雄幻想”;
String[]splitData=data.split(“\\\\”);

对于(int i=0;iNope,如果你看我前面的问题,我正在尝试制作一个漫画阅读器。这会得到漫画的标题、作者等。我正在尝试处理这个问题,但我不知道如何处理。如果出现问题,请先自己尝试,然后问。你尝试了什么?你已经找到了数组索引和“类型”之间的关系,您已经拥有了所需的一切。您已经拥有了模式(标题以0、4、8等形式显示)你做得很好!是的,今天真是糟糕的一天,但我已经得到了我需要的答案。不,如果你看我之前的问题,我正在尝试做一个漫画读者。这是漫画的标题,作者等。我正在尝试处理这个问题,但我不知道如何处理。如果出现问题,先自己尝试,然后问。你尝试了什么你已经弄清楚了数组索引和“类型”之间的关系,你已经得到了你所需要的一切。你已经搞定了模式(标题在0,4,8等中)。你做得很好!是的,今天真是糟糕的一天,但我已经得到了我需要的答案。我向[你所信仰的精神领袖的名字]发誓我可能在其他任何一天都会知道这一点,但我今天有很多麻烦的想法,所以我的大脑被阻塞了。不过,谢谢!顺便说一句,其中3个if语句应该是else if语句…这使程序稍微更有效率。你也可以使用switch:I%4将只在我发誓时计算[你所信仰的精神领袖的名字]我早就知道这一点了,但我今天有很多麻烦的想法,所以我的大脑被阻塞了。不过谢谢!顺便说一句,其中3个if语句应该是else if语句…这使程序稍微更有效率。你也可以使用开关:I%4将只计算一次