gpt4 book ai didi

java - 将字符串添加到存储在 ArrayList 中的 String ArrayList

转载 作者:行者123 更新时间:2023-12-02 06:24:15 24 4
gpt4 key购买 nike

我正在尝试从两个不同的网站检索一些数据,并希望将它们存储在不同的数组列表中以供进一步处理。总之,我有 6 个字符串数组列表,然后我有三个数组列表,我已将这些字符串数组列表添加到其中。我这样做是为了使用循环将数据添加到字符串数组列表(请参阅下面的代码)。然而,它并没有按照我预期的方式将数据添加到字符串数组列表中,显然我的逻辑是错误的。只需一点指导,我们将不胜感激。我的代码的相关片段如下:

    //creating the String type ArrayLists
private static ArrayList<String> m1=new ArrayList<String>();
private static ArrayList<String> re1=new ArrayList<String>();
private static ArrayList<String> ra1=new ArrayList<String>();

private static ArrayList<String> m2=new ArrayList<String>();
private static ArrayList<String> re2=new ArrayList<String>();
private static ArrayList<String> ra2=new ArrayList<String>();

//creating three ArrayLists of ArrayLists
private static ArrayList<ArrayList> arraylistM = new ArrayList<ArrayList>();
private static ArrayList<ArrayList> arraylistRe = new ArrayList<ArrayList>();
private static ArrayList<ArrayList> arraylistRa = new ArrayList<ArrayList>();

public static void main(String[] args) throws Exception
{
URL[] item=new URL[2];
item[0] = new URL("http://www.example111111.html");
item[1] = new URL("http://www.example222222.html");

arraylistM.add(m1);
arraylistM.add(m2);

arraylistRe.add(re1);
arraylistRe.add(re2);

arraylistRa.add(ra1);
arraylistRa.add(ra2);


for(int loop=0;loop<2;loop++)
{


BufferedReader in = new BufferedReader(
new InputStreamReader(
item[loop].openStream()));
String inputLine;

while ((inputLine = in.readLine()) != null)
{
String withoutSpeechMarks=inputLine.replaceAll("\"", "");
String[] parts = withoutSpeechMarks.split("<span x=");

for (int i=0;i<parts.length;i++)
{
if (parts[i].contains("1>"))
{
(arraylistM.get(i)).add(parts[i].substring(13, (parts[i].length())-7));
}//get the first string array in arraylistM and add this data to it
if (parts[i].contains("2>"))
{
(arraylistRe.get(i)).add(parts[i].substring(9, (parts[i].length())-10));
}
if (parts[i].contains("3>"))
{
(arraylistRa.get(i)).add(parts[i].substring(7, (parts[i].length())-7));
}
}//end of inner for loop


} //end of while
in.close();
}
for (int i = 0; i < arraylistM.size(); i++)
{
System.out.println(arraylistM.get(i)+"||"+arraylistRe.get(i)+"||"+arraylistRa.get(i) );
}

我希望的方式是,从第一个网站,提取的结果应添加到字符串数组 m1、re1、ra1,然后从第二个网站将数据添加到字符串数组 m2、re2 ,ra2。数据正在添加,但全部放在一起,并且没有像我希望的那样分开。

最佳答案

根据您的描述,听起来您应该使用

arrayListM.get(loop).add( ... )
arrayListRe.get(loop).add( ... )
arrayListRa.get(loop).add( ... )

在第一个循环中而不是

arrayListM.get(i).add( ... )
arrayListRe.get(i).add( ... )
arrayListRa.get(i).add( ... )

此外,您应该考虑将 ArrayList 的 ArrayList 声明为:

ArrayList<ArrayList<String>>

而不是

ArrayList<ArrayList>

关于java - 将字符串添加到存储在 ArrayList 中的 String ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20709690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com