Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 拆分并合并ArrayList_Java_Arraylist_Split_Jsoup - Fatal编程技术网

Java 拆分并合并ArrayList

Java 拆分并合并ArrayList,java,arraylist,split,jsoup,Java,Arraylist,Split,Jsoup,大家好,我有两个arrayList,每个arrayList包含一个长字符串 ArrayList1 = [Inägogatan 23C (Göteborg) 6210 kr/mån, 69.0 m², 3 rum Eklandagatan 70B (Göteborg) 5594 kr/mån, 57.5 m², 3 rum Uddeholmsgatan 3 D . (Göteborg) 4959 kr/mån, 61.0 m², 3 rum] ArrayList2 = [Status: Visni

大家好,我有两个arrayList,每个arrayList包含一个长字符串

ArrayList1 = [Inägogatan 23C (Göteborg) 6210 kr/mån, 69.0 m², 3 rum Eklandagatan 70B (Göteborg) 5594 kr/mån, 57.5 m², 3 rum Uddeholmsgatan 3 D . (Göteborg) 4959 kr/mån, 61.0 m², 3 rum]
ArrayList2 = [Status: Visning påbörjad Status: Visning påbörjad Status: Visning avslutat]
我想把他们分开,所以我得到了这个:

FinalArrayList = [Inägogatan 23C (Göteborg) 6210 kr/mån, 69.0 m², 3 rum Status: Visning påbörjad, Eklandagatan 70B (Göteborg) 5594 kr/mån, 57.5 m², 3 rum Status: Visning påbörjad, Uddeholmsgatan 3 D . (Göteborg) 4959 kr/mån, 61.0 m², 3 rum Status: Visning avslutat]
我能想到的唯一方法就是以某种方式将ArrayList 1一直按“rum”拆分,并在ArrayList 2中保持状态。有没有更顺畅的方法

用数据填充阵列的代码:

deselement = profileURL.getElementsByClass("applications");
statuselement = profileURL.getElementsByClass("status");

            for (Element element : deselement) {
                listDescreption.add(element.getElementsByClass("description").text());
                listStatus.add(element.getElementsByClass("status").text());

                System.out.println(listDescreption);
                System.out.println(listStatus);
       }
}        

欢迎所有帮助,谢谢!:实际上很简单:

public <T> List<T> merge(List<? extends T> l0, List<? extends T> l1) {
    if (l0.size() != l0.size())
        throw new IllegalArgumentException("Lists should have the same size");

    List<T> res = new ArrayList<>(l0.size() + l1.size()));
    Iterator<T> it0 = l0.iterator();
    Iterator<T> it1 = l1.iterator();

    while (it0.hasNext() && it1.hasNext()) {
        res.add(it0.next());
        res.add(it1.next());
    }
    return res;
}

公共列表合并(List如果要转换字符串

Inägogatan 23C (Göteborg) 6210 kr/mån, 69.0 m², 3 rum Eklandagatan 70B (Göteborg) 5594 kr/mån, 57.5 m², 3 rum Uddeholmsgatan 3 D . (Göteborg) 4959 kr/mån, 61.0 m², 3 rum

Status: Visning påbörjad Status: Visning påbörjad Status: Visning avslutat
列出将包含

Inägogatan 23C (Göteborg) 6210 kr/mån, 69.0 m², 3 rum Status: Visning påbörjad
Eklandagatan 70B (Göteborg) 5594 kr/mån, 57.5 m², 3 rum Status: Visning påbörjad
Uddeholmsgatan 3 D . (Göteborg) 4959 kr/mån, 61.0 m², 3 rum Status: Visning avslutat
然后,您需要在前面有
、3 rum
的空格上拆分第一个字符串,在后面有
状态:
的空格上拆分第二个字符串,但同时我们不希望
拆分
以删除
、3 rum
状态:

我们可以通过以下机制实现:


  • 我们需要在
    上拆分第一句话。”(?这两个ArrayList的来源是什么?为什么你不能以你想要的方式获取它们,因为它们看起来确实是相关的。现在,没有固定的模式来决定在哪里拆分这两个列表的字符串。你的问题很不清楚。拆分ArrayList是什么意思?列表的整个概念是它包含单独的(拆分)元素。您是否可以将arraylist的内容作为一个字符串获取?您的arraylist看起来不像字符串。我希望它在FinalArrayList中看起来像这样:Array1=[a,b,c]Array2=[1,2,3]FinalArray=[a 1,b 2,c 3]是什么阻止您为(int i=0;i两个列表的大小都是1。那么这是否有效?我认为结果将是:@Inc0re“两个列表的大小都是1”,这是您正在共享的一种重要细节。由于
    list.toString()的元素,此信息不是很明显
    由逗号分隔,因此列表中似乎有多个元素。运行它,您将看到:D当前,我在一台安装了fresh install的计算机上,该计算机甚至没有JDK@Pshemo这就是为什么我说这是一个长字符串:)对不起unclear@Inc0re为了清楚起见,我们可以假设
    [
    ]
    不是列表中存储的字符串的一部分吗?
    String s1 = "Inägogatan 23C (Göteborg) 6210 kr/mån, 69.0 m², 3 rum Eklandagatan 70B (Göteborg) 5594 kr/mån, 57.5 m², 3 rum Uddeholmsgatan 3 D . (Göteborg) 4959 kr/mån, 61.0 m², 3 rum";
    String s2 = "Status: Visning påbörjad Status: Visning påbörjad Status: Visning avslutat";
    
    String[] array1=s1.split("(?<=, 3 rum)\\s");
    String[] array2=s2.split("\\s(?=Status:)");
    
    List<String> result = new ArrayList<>();
    for (int i=0; i<array1.length; i++){
        result.add(array1[i]+" "+array2[i]);
    }
    
    System.out.println(result);
    
    listDescreption.add(element.getElementsByClass("description").text());
    
    for (Element el : element.select(".description tagWithSingleToken")){
        listDescreption.add(el.text());
    }
    
    listStatus.add(element.getElementsByClass("status").text());