首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java中组合数组列表字符串?

如何在java中组合数组列表字符串?
EN

Stack Overflow用户
提问于 2010-05-25 10:34:50
回答 2查看 1.1K关注 0票数 0

我有一些包含关键字的arraylist字符串!

A windows is arraylist带有关键字的字符串是粗体的窗口结构:9个单词之前+关键字+9个单词之后

您可以看到一些窗口重叠

如何组合arraylist来像这样接收:

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-25 11:31:28

如果您不太担心性能,那么编写一个简单的subList/equals匹配非常容易:

代码语言:javascript
复制
    String[] texts = {
        "sunset lake michigan michigan alaska water florida "
        + "peninsula third largest water seventh largest water "
        + "percentage edit list largest country",

        "michigan alaska water florida peninsula third largest water "
        + "seventh largest water percentage edit list largest country "
        + "subdivision list political",

        "third largest water seventh largest water percentage edit list "
        + "largest country subdivision list political geographic "
        + "subdivisions total edit references"
    };
    List<String> joined = new ArrayList<String>();
    for (String text : texts) {
        List<String> textAsList = Arrays.asList(text.split(" "));
        final int N = joined.size();
        final int M = textAsList.size();
        for (int k = Math.min(N, M); k >= 0; k--) {
            if (joined.subList(N - k, N).equals(textAsList.subList(0, k))) {
                joined.addAll(textAsList.subList(k, M));
                break;
            }
        }
    }
    System.out.println(joined);

这将打印:

代码语言:javascript
复制
[sunset, lake, michigan, michigan, alaska, water, florida,
peninsula, third, largest, water, seventh, largest, water,
percentage, edit, list, largest, country, subdivision, list,
political, geographic, subdivisions, total, edit, references]

该算法的工作原理是这样的:为了构建List<String> joined,给定一个List<String> textAsList,我们找到joined的“尾”和textAsList的“头”之间最长的subList匹配。

票数 4
EN

Stack Overflow用户

发布于 2010-05-25 11:09:25

请参阅和这些使用DefaultHighlighterexamples

补充:啊,我以为你只是需要看看风景。对于该模型,请考虑本answer中讨论的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2901635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档