十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
有一个字符串函数:Instr(n,S1,S2)
专注于为中小企业提供网站设计、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业碌曲免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了超过千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
该函数的功能:从字符串S1的左起第N位开始,向右逐位进行搜索匹配字符串S2,如果找到匹配,就返回一个整数指明匹配的位置,否则就返回0。如果缺省n,就是默认从字符串S1的左起第1位开始,进行搜索匹配字符串S2。
例如1:Instr(1,"abcde","a"),返回1
例如2:Instr(3,"abcde","a"),返回0
例如3:Instr(1,"abcde","c"),返回3
例如4:Instr(1,"abcde","cde"),返回3
例如5:Instr(4,"ab12cd12e12","12"),返回7,这里从字符串"ab12cd12e12"左起第4位开始向右搜索匹配字符串"12",找到的是中间一个“12”,这个“12”是位于字符串"ab12cd12e12"左起的第7个字符。
而:Instr(1,"ab12cd12e12","12"),返回3
Instr("ab12cd12e12","12"),返回3
replace有重载方法,可以替换1~任意可能个
别用string的replace,直接用replace
要解决这个问题办法很多,如何选择取决于应用环境和具体需求。
使用双重循环是最简单的办法。这个方案虽然计算成本较高,但适应性强,最容易实现。如果是有序数组,可以通过二分法迅速定位目标位置;你也可以构造一个临时数组,通过“摘除法”减少比较次数。
除此之外,预先构造一个对应表也是很有效率的方法。磨刀不误砍柴工。
如果有环境的支持,那效率和代码都要省很多。最典型的就是LinQ。如果你使用的是VB.net,并且框架是3.0版本以上,就可以得到LinQ的支持了。或者,如果你的数据是从数据库中获取的,那么使用SQL语句重新从数据库获取过滤过的数据比自己双重循环比较效率还要高。