在PowerShell中比较多组数组对,查找跨组共现的字符串
找出两组数组对中的共同字符串
要解决这个问题,核心是聚焦两组里的字符串数组,找出它们的共同元素。这里给你两种实用的方法:
方法一:利用集合高效找交集
集合的交集操作是处理这类“找共同元素”问题的最优方案,不管是手动分析还是代码实现都很便捷。
步骤分解:
- 提取目标字符串数组:先把两组的字符串部分单独剥离出来
- 第一组字符串:
M681,T9997,E61,H717,K700 - 第二组字符串:
B722,T732,L999,M681,I125
- 第一组字符串:
- 转为集合格式:将两个字符串数组转换成集合(集合会自动过滤重复元素,不过这里每组的字符串看起来都是唯一的)
- 第一组集合:
{'M681', 'T9997', 'E61', 'H717', 'K700'} - 第二组集合:
{'B722', 'T732', 'L999', 'M681', 'I125'}
- 第一组集合:
- 计算交集:直接取两个集合的交集,得到的就是两组都存在的字符串
- 最终结果:
{'M681'}
- 最终结果:
方法二:手动逐个比对(适合小规模数据)
如果数据量不大,也可以手动遍历第一组的每个字符串,检查它是否在第二组中出现:
- 检查
M681:在第二组的字符串数组里能找到,符合条件 - 检查
T9997:第二组没有,排除 - 检查
E61:第二组没有,排除 - 检查
H717:第二组没有,排除 - 检查
K700:第二组没有,排除
最终得到的共同字符串同样是 M681。
补充说明:时间戳数组在这个问题里只起到和字符串一一关联的作用,找共同字符串的时候不需要用到它哦。
内容的提问来源于stack exchange,提问作者Paxz
相关产品推荐
相关产品推荐

