C为什么要用StartsWith而不是Substring进行字符串匹配?
字符串的截取匹配操作在开发中非常常见,比如下面这个示例:我要匹配查找出来字符串数组中以"abc"开头的字符串并打印,我下面分别用了两种方式实现,代码如下:
using System;
namespace ConsoleApp23{ class Program { static void Main(string[] args) { string[] strs = new string[] { "abc123" , "abc456" ,"ab123","a12345" };
foreach (var str in strs) { if (str.Substring(0, 3) == "abc") { Console.WriteLine(str); } } Console.WriteLine();
foreach (var str in strs) { if (str.StartsWith("abc")) { Console.WriteLine(str); } }
Console.ReadKey(); } }}
运行结果如下:
诚然,两种方法都输出了正确的结果。
那么既然,两种方式都能实现,这两种方法有没有什么区别呢?当然有的,而且大多数时候,一个老练的程序员都会用StartsWith而不是Substring,为什么呢?
往下看,我把数据源修改下:
static void Main(string[] args) { string[] strs = new string[] { "abc123" , "abc456" ,"ab123","a12345" ,"abc","ab"};
foreach (var str in strs) { if (str.Substring(0, 3) == "abc") { Console.WriteLine(str); } } Console.WriteLine();
foreach (var str in strs) { if (str.StartsWith("abc")) { Console.WriteLine(str); } }
Console.ReadKey(); }
运行后,方法一直接崩了,但是方法2则可以正确运行出来结果
看一下Substring的用法解释:startIndex 加 length 指示不在此实例内的位置。- 或 - startIndex 或 length 小于零。,所以当字符串小于你要截取的长度时,你如果没用try catch去捕获异常,代码就崩溃了.
[SecuritySafeCritical] public String Substring(int startIndex, int length);
所以,我们需要慎用Substring,如果非要用,一定需要进行异常处理。
奋斗一生临近五十,工厂破产,负债累累。以前的员工出人头地,请你去做事,该接受吗?可以答应,五十已知天命,风水轮流转,自己失败有主观和客观因素。你发现自己工厂的劣势时,设法提高技术水平,研发相关新产品,合理完善经营机制,淘汰低产能配置,以达降低成夲,轻松应对市场
职工在岗期间找单位领导反映问题,领导说他下班了,下班不谈公事,请问这样领导称职吗?如果是外企,按照工作规定,上司原则上休息期间不谈公事,员工也不会在下班期间找上司。比如,我们与英国的合资公司,外方高管休年假,把工作手机和邮箱一交,就可以安心度假了,米国总统都可以
如果你想对一个人表白,只能用一首歌,你会选哪首?回答了爱是专一的,我会用一首我的眼里只有你。表白一下一如果你想对一个人表白那就是你对一个人的爱意,是你一生最为重要的表白,也是你一生中最重要的选择,关系到你一生的幸福,还有一个家庭
车前草怎么吃?车前草怎么吃?车前草可以与其他食材一起做粥食用。车前草与葱白淡豆豉粳米等其他食材一起做粥,可以用于暑湿泄泻,小便短少。1。组成鲜车前草30g,葱白15g,淡豆豉12g,粳米50g,
煎鱼不粘,烧鱼不碎的秘诀是什么?煎鱼粘锅这是很让人苦恼的,不仅影响了鱼的外观,锅还难洗干净。如何避免呢?其实很简单,有几个方法都可以让鱼不粘锅。亲测有效,因为我家人喜欢吃鱼,可以说每天都有烧鱼,变着花样做,红烧干
3万到10万左右的旅行摩托车有哪些推荐?更多摩托车精彩内容请认准阿牛单车欢迎关注点击查看。3万10万,这个跨度还是比较大了,从国产到进口大贸,从春风贝纳利到宝马本田川崎,都有得选择,小编就列举其中几款1。春风650TRG
天柱山下的俄罗斯村是怎么来的,为什么有这么多的俄罗斯人愿意到天柱山去?没有去过,略有所闻,听说在安徽安庆市潜山县天柱山脚下有个俄罗斯村,住着不少俄罗斯来的客人,长年累月住着,修身养性,效果还真不错,据说此处风景很美,山绿水清,空气新鲜,含氧量大,因为
为什么活人溺水会沉入水底,死人会浮上去呢?把不同的物体投进水中有的会上浮,有的会下沉。物体是上浮还是下沉由其密度决定,由阿基米德原理可知,沉于水的物体密度大于水的密度,如果物体的密度小于水的密度,物体就会上浮。夏季到来了,
如何确定西安的房子产权性质?常见的房屋产权性质有以下九种1房改房即已购公有住房的改变,指的是城镇职工根据国家和地方政府,依据城镇住房制度改革政策规定,按照地产开发企业开发建设并出售出租的房屋。2安居工程住房指
国足换了新主帅,足球就能踢好么?能!能力李铁零分小鹏兄可二分,问题是后面四场球全部拿下还有多大意义?赢球之后他们金钱还怎么拿怎么分?还是那句话如果没有李铁这小子瞎搅局,就凭这一届优秀球员的组合,这次卡塔尔世界杯肯
中国古代的糖很贵吗?既不贵,也贵。中国不贵,欧洲很贵。古代糖来源大致有以下两种,一种是由于技术不成熟等原因没办法制糖,只能通过蜂蜜果实或者其他甜类食物过过嘴瘾。另一种是通过蜂蜜甘蔗飴等制糖。我们对糖价