我如何在StringPattern值birdantantcatbirdcat中获取String结果

塔彭:

我有一个dataDic,它是一个数组{“ ant”,“ bird”,“ cat”}

dataDic是我想在stringPattern上搜索的单词数组

我想使用dataDic从stringPattern = birdantantcatbirdcat获取单词结果

例1。dataDic = {“ ant”,“ bird”,“ cat”}的答案是{bird,ant,ant,cat,bird,cat} Ex2。dataDic = {“ ant”,“ cat”}的答案是{ant,ant,cat,cat}

这是我的代码`private static String stringTest =“ birdantantcatbirdcat”; 私有静态列表dicListWord; 私有静态ListresultString = new ArrayList <>();

public static void main(String[] args) {

    dicListWord = new ArrayList<>();
    dicListWord.add("ant");
    dicListWord.add("bird");
    dicListWord.add("cat");
    String[] data = stringTest.split("");

    for (String dataDic:dicListWord) {
        String [] wordList = dataDic.split("");
        String foundWord = "";
        for (String charTec:data) {
            for (String dicWord:wordList) {
                if(charTec.equals(dicWord)){
                    foundWord = foundWord.concat(charTec);
                    if(dataDic.equals(foundWord)){
                        resultString.add(foundWord);
                        foundWord = "";
                    }
                }
            }
        }
    }

    for (String w1:data) {
        for (String result:resultString) {
                System.out.println(result);
        }
    }
}`

///////////////////////////////////////////////////// //////////////////////////////

我运行的结果是

{蚂蚁,蚂蚁,鸟,鸟,蚂蚁,蚂蚁,鸟,鸟,蚂蚁,蚂蚁,鸟,鸟,蚂蚁,蚂蚁,鸟,鸟,蚂蚁,蚂蚁,鸟,蚂蚁,蚂蚁,鸟,鸟,蚂蚁,蚂蚁鸟,鸟,蚂蚁,蚂蚁,鸟,鸟,蚂蚁,蚂蚁,鸟,鸟,蚂蚁,蚂蚁,鸟,鸟,蚂蚁,蚂蚁,鸟,鸟,蚂蚁,蚂蚁,鸟,鸟,蚂蚁鸟,蚂蚁,蚂蚁,鸟,鸟,蚂蚁,蚂蚁,鸟,鸟,蚂蚁,蚂蚁,鸟,鸟,蚂蚁,蚂蚁,鸟,鸟,蚂蚁,蚂蚁,鸟,鸟,蚂蚁,蚂蚁,鸟,鸟,蚂蚁,蚂蚁,鸟,鸟}

Arvind Kumar Avinash:

在浏览字符串以查找单词的匹配项时,使用TreeMap将单词的位置存储为关键字,并将单词本身存储为值。您需要选择a的原因TreeMap是,它是根据其键的自然顺序进行排序的,这是满足您要求的重要方面。您的要求指出,结果列表中的单词应按它们在字符串中出现的顺序排列。

演示:

import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<String> words = List.of("ant", "bird", "cat");
        String str = "birdantantcatbirdcat";
        System.out.println(getMatchingWords(words, str));
    }

    static List<String> getMatchingWords(List<String> words, String str) {
        Map<Integer, String> map = new TreeMap<Integer, String>();
        for (String word : words) {
            Pattern pattern = Pattern.compile(word);
            Matcher matcher = pattern.matcher(str);
            while (matcher.find()) {
                map.put(matcher.start(), matcher.group());
            }
        }
        return map.values().stream().collect(Collectors.toList());
    }
}

输出:

[bird, ant, ant, cat, bird, cat]

如有任何疑问/问题,请随时发表评论。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在String中获取StringArray的值?

如何在我的IndexPage中获取getServerSideProps结果?

如何在结果中获取 XMLHttpRequest 的属性值

如何从结果值中获取原始值

我如何在php中获取CSV列值

如何在我的 JSON 对象中获取相应的 JSON 值?

我如何在jQuery中获取数据绑定值

我如何在组件的ionic 2中获取输入值?

我如何在Ajax中获取HTML而不是值?

我如何在namednodemap中获取属性值

我如何在 javascript 中获取克隆输入值

我如何在 useCallback 中获取 useState 值(反应钩子)

如何在我的文本输入中获取对象值?

我如何在scala spark中获得结果正文而不是完整结果正文的值

如果我有多个具有相同值的行,如何从mysql结果中获取单个值

我如何在反应中获取并将结果传递给下一个获取?

如何在Haskell中获取'[String]的类型级别的值?

如何在HashMap值中获取String []数组的长度

在 Oracle 中,我们如何在结果中获取不在表中的多个列

如何在Python中的csv的所有列中获取特定类别的结果的datetime值?

如何在mysqldb中获取num结果

如何在fetch中获取结果号

如何在 VoltDB 中获取查询结果

如何在 Linq 中获取结果列表

当我在数组中获取结果时如何按值排序?

我如何在bash中的grep结果之前/之后获取行?

当IActionResult类型返回结果时,如何在Xunit中获取内容值

如何在Swift 2中获取Alamofire.request()。responseJSON的结果值?

如何在Elasticsearch中基于索引字段值(数据)的优先级获取搜索结果