首页 新闻 会员 周边 捐助

VB中如何对一串数字的前几位进行匹配???

0
悬赏园豆:50 [已解决问题] 解决于 2020-01-09 09:33

问题描述可能不太清楚,我来举个例子,就是比如一串数字,12345678,如果前几位符合,123,那么这个就输出AA,符合1234,这个就输出bb,符合12345,就输出cc,怎样能够在符合12345的时候把AAbbcc这三个值都匹配出来,供用户去选择

VB
起风了123的主页 起风了123 | 初学一级 | 园豆:84
提问于:2019-12-28 09:31
< >
分享
最佳答案
0

硬编码得了..

收获园豆:50
猝不及防 | 老鸟四级 |园豆:2878 | 2019-12-28 09:41

我是想看看有没有更好的方法,他这个可能性比较多,从前1位匹配什么,就有几种输出结果,后面还有前三位匹配什么,前五位匹配什么,输出的都不一样,一共接近一百种可能性

起风了123 | 园豆:84 (初学一级) | 2019-12-28 09:44

@起风了123:
维护个数组

var listMatched=list.where(t=>numberString.startwith(t.key));
var listResult=listMatched.select(t>t.value);
猝不及防 | 园豆:2878 (老鸟四级) | 2019-12-28 10:16

@猝不及防: 没看太懂

起风了123 | 园豆:84 (初学一级) | 2019-12-28 10:21

@起风了123:
写错了..改了
你现在有一个维护着123和AA的数组,比如key=123,value=AA,这么一个数据结构的集合
//从这个集合里筛选numberString以key开头的数据
var listMatched=list.where(t=>numberString.startwith(t.key));

//从这个符合要求的集合里取出value,这不就是你要的列表吗
var listResult=listMatched.select(t>t.value);

猝不及防 | 园豆:2878 (老鸟四级) | 2019-12-28 10:25

@猝不及防: 逻辑好像有点不太对,我有两个问题:
1.是key值比较多,有接近一百个,而不是匹配的数据列表数据量大
2.我想要的效果是,不同的key值匹配不同的数据,而会有这种前面三位,前面四位是相同的key值,这时候组成一个数据列表让用户去选择,而不是一个key值会匹配多个数据,不过还是很感谢您的回答

起风了123 | 园豆:84 (初学一级) | 2019-12-28 10:38

@起风了123:
var listMatched=list.where(t=>numberString.startwith(t.key));
这不是你的一串数字(numberString)去匹配多个key值吗

猝不及防 | 园豆:2878 (老鸟四级) | 2019-12-28 11:02

我好像明白了,我这个是VB的程式,我试着按照您说的方法写一下,非常感谢您的解答

起风了123 | 园豆:84 (初学一级) | 2019-12-28 11:17
其他回答(1)
0

ComparedList a;

MatchMap<,> b;

b.Where(t=>a.Any(g=>g.StartWith(t)))

花飘水流兮 | 园豆:13615 (专家六级) | 2019-12-30 19:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册