Java中如何检查Set集合内指定模式元素并提取对应值
实现方法
你可以直接通过遍历集合匹配前缀的方式完成需求,用JDK原生API即可实现,不需要引入额外依赖:
- 遍历Set中的所有字符串元素
- 逐个判断元素是否以
xyz-type=为前缀,匹配到之后直接截取等号后方的内容,就是对应的属性值 - 遍历全程没有匹配到对应前缀的元素,就说明集合中不存在该键值项
完整可运行代码示例
import java.util.HashSet; import java.util.Set; public class Demo { public static void main(String[] args) { Set<String> name = new HashSet<>(); name.add("a-b-c"); name.add("abc-type=unknown"); name.add("xyz-type=a.b.c.d"); name.add("log-value"); final String KEY_PREFIX = "xyz-type="; String xyzValue = null; for (String item : name) { if (item.startsWith(KEY_PREFIX)) { xyzValue = item.substring(KEY_PREFIX.length()); break; // 匹配到目标项后直接终止循环,减少无意义遍历 } } // 后续业务处理 if (xyzValue != null) { System.out.println("检测到xyz-type对应配置,属性值为:" + xyzValue); } else { System.out.println("未检测到xyz-type对应的配置项"); } } }
运行输出
检测到xyz-type对应配置,属性值为:a.b.c.d
注意点
- 因为
HashSet本身是无序存储结构,不要尝试通过固定索引位置取值,前缀匹配的方式不受元素存储顺序影响,稳定性更高 - 如果你的业务场景中可能存在多个
xyz-type=前缀的元素,只需要去掉代码中的break关键字,用集合存储所有截取到的值即可
内容的提问来源于stack exchange,提问作者LOrD_ARaGOrN
相关产品推荐
相关产品推荐

