gpt4 book ai didi

java - 需要一个逻辑来获取元素

转载 作者:行者123 更新时间:2023-12-01 17:07:05 24 4
gpt4 key购买 nike

我是编程新手,我需要以下逻辑

服务包含(这是一个列表)

XX04|N|abc.02
XX04|N|abc.03
XX04|N|xyz.03
XX04|N|xyz.02
XX04|N|deg.01

entry Map contains

abc.def.01-abc.02
abc.def.01-xyz.02
abc.max.01-xyz.01

for(String test: entry.getValue()){
if(Service.contains(test){
//Logic here to take only those services(Like
XX04|N|abc.02
XX04|N|xyz.02
XX04|N|deg.01
}

最佳答案

首先,我建议不仅使用字符串来建模,还使用包含某些 id 的 getter 方法的对象来建模。

我知道会假设 map 的内容始终与正则表达式匹配

\w*\.\w*\.\d*-\w*\.\d*

并且服务始终匹配

\w*\d*\|N\|[A-z0-9.]*

然后您可以使用正则表达式通过命名捕获组提取字符串的 id 部分。

Pattern servicePattern = Pattern.compile("\\w*\\d*\\|N\\|(?<id>\\w*\\.\\d*)");
Pattern entryPattern = Pattern.compile("\\w*\\.\\w*\\.\\d*-(?<id>\\w*\\.\\d*)");

for (String name : entry.getValue()) {
Matcher entryMatcher = entryPattern.matcher(name);
Assume.true(entryMatcher.matches());

String id = entryMatcher.group("id");

for (String serviceName : Service) {
Matcher serviceMatcher = servicePattern.matcher();
if (serviceMatcher.matches()) {
if (id.equals(serviceMatcher.group("id"))) {
// do what ever you want with the service
}
}
}
}

关于java - 需要一个逻辑来获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61456254/

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