两个简单的扩展方法:TrimPrefix和TrimSuffix

今天写程序频繁用到两中字符串操作:删除某个字符串指定的前缀和后缀。由于没有现成的方法可用,写了两个扩展方法:TrimPrefix和TrimSuffix。

   1: namespace System
   2: {
   3:     public static class StringExtensions
   4:     {
   5:         public static string TrimPrefix(this string sourceString, string prefix, bool ignoreCase = false)
   6:         {
   7:             prefix = prefix ?? string.Empty;
   8:             if(!sourceString.StartsWith(prefix,ignoreCase, CultureInfo.CurrentCulture))
   9:             {
  10:                 return sourceString;
  11:             }
  12:  
  13:             return sourceString.Remove(0, prefix.Length);
  14:         }
  15:  
  16:         public static string TrimSuffix(this string sourceString, string suffix, bool ignoreCase = false)
  17:         {
  18:             suffix = suffix ?? string.Empty;
  19:             if (!sourceString.EndsWith(suffix, ignoreCase, CultureInfo.CurrentCulture))
  20:             {
  21:                 return sourceString;
  22:             }
  23:             return sourceString.Substring(0, sourceString.Length - suffix.Length);
  24:         }
  25:     }
  26: }

程序调用:

   1: static void Main(string[] args)
   2: {
   3:     string sourceString = "ABC123";
   4:     Console.WriteLine(sourceString.TrimPrefix("ABC"));
   5:     Console.WriteLine(sourceString.TrimSuffix("123"));
   6: }

输出结果:

   1: 123
   2: ABC

作者:蒋金楠
微信公众账号:大内老A
微博:www.weibo.com/artech
如果你想及时得到个人撰写文章以及著作的消息推送,或者想看看个人推荐的技术资料,可以扫描左边二维码(或者长按识别二维码)关注个人公众号(原来公众帐号蒋金楠的自媒体将会停用)。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文链接

时间: 2024-09-20 00:05:18

两个简单的扩展方法:TrimPrefix和TrimSuffix的相关文章

扩展方法和静态方法使用相同签名而带来的莫名其妙的错误

很久以前我写过一篇文章简单介绍扩展方法.接口和继承带来的有趣现象,而这篇文章就没那么"有趣"了,介绍由于扩展方法和静态方法命名的冲突引起一个莫名其妙的错误,由于这个莫名其妙的错误暂时使我不能以较好的方式实现我的一些想法,特郁闷的是我觉得不应该是编程上的错误,而且本来就不应该有这种错误,所以称之为莫名其妙的错误. 错误描述:Member '...TestMethod()' cannot be accessed with an instance reference; qualify it

用JQuery实现全选与取消的两种简单方法

 本篇文章主要是对JQuery实现全选与取消的两种简单方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 用JQUERY实现全选和取消全选,没有js那么繁琐,而且支持更多浏览器.  代码如下: <mce:script type="text/javascript"><!--   $(function() {       $("#checkall").click(function() {           $("input[@na

Java之递归求和的两种简单方法(推荐)_java

方法一: package com.smbea.demo; public class Student { private int sum = 0; /** * 递归求和 * @param num */ public void sum(int num) { this.sum += num--; if(0 < num){ sum(num); } else { System.out.println("sum = " + sum); } } } 方法二: package com.smbea

JavaScript数值千分位格式化的两种简单实现方法_javascript技巧

在对数值进行格式化的时候,一个常见的问题是按照千分位格式化,网上对这个问题已经有很多种解决方法了,还可以利用Array.prototype.reduce方法来实现千分位格式化. function formatNumber(num) { if (isNaN(num)) { throw new TypeError("num is not a number"); } var groups = (/([\-\+]?)(\d*)(\.\d+)?/g).exec("" + nu

ThinkPHP中Widget扩展的两种写法及调用方法详解

本文实例讲述了ThinkPHP中Widget扩展的两种写法及调用方法.分享给大家供大家参考,具体如下: Widget扩展一般用于页面组件的扩展,在页面根据需要输出不同的内容,下面介绍一下ThinkPHP中Widget的两种写法及调用 写法一: ArticlWidget.class.php文件: class ArticleWidget extends Widget { /** * * @param array $data * @return type * 调用方法:{:W('ArticleList

防范QQ密码被破解的两个简单方法

腾讯QQ是普及面最高的一种聊天工具.QQ密码在网络中被盗走的情况时有发生,那么对于这些种种令人厌恶的远程破解方式,我们究竟应该如何进行防范呢?下面就给大家介绍两个简单防范招术. 1.防范在线密码破解 远程在线破解QQ密码,其原理仍然是采用穷举技术对键盘所有可能的输入进行猜测,惟一不同之处在于它可以自动和腾讯服务器进行密码核对.所以,对它的防范一要靠腾讯公司对服务器进行防止在线破解的安全设置,二就是用户要设置复杂的密码,这样就可以有效地防止密码在线盗窃了. 2.防范木马破解 其实我们的电脑被人种木

Linq扩展方法简单分析

在向大家详细介绍LINQ之前,首先让大家了解下LINQ是什么,然后全面介绍Linq扩展方法. LINQ使查询成为了.NET中头等的编程概念,被查询的数据可以是XML(LINQ to XML).Databases(LINQ to SQL.LINQ to Dataset.LINQ to Entities)和对象(LINQ to Objects).LINQ也是可扩展的,允许你建立自定义的LINQ数据提供者(比如:LINQ to Amazon.LINQ to NHibernate.LINQ to LDA

来看看两种好玩的方法,扩展方法和分部方法

好久没过来扯淡了,话说这年头还有偶遇的事情吗?比如国庆回家的汽车上有个妹子要你qq,要你微信,想着法子跟你聊天,然后睡了一觉,醒来发现 肾不见了?小花絮小花絮,要是肾真没了,也吹不了牛,败不了火了,继续言归正传.   一:扩展方法        说到扩展方法,我想大家都已经再熟悉不过了,也许你的解决方案中有无数个这样的扩展方法,自从有了Linq之后,我们的集合就再也不单纯了. 从下面的Linq类中,所有的方法都扩展在IEnumerable<T>上,恰恰我们的集合都继承于IEnumerable接

C# 3.0新特性初步研究 Part2:使用扩展方法

扩展方法(Extension Method)可以为已有的类型添加新的方法定义和实现,比如int类型目前没有一个名叫xxxyyy()的方法,那么通过使用扩展方法,我们可以为int类型添加一个xxxyyy()方法.这个有点类似于用来扩展系统功能的某些设计模式. 下面我们用代码来说话:这是我们以前的写法:    1public static class Extensions 2{ 3    public static string CamelCase(string identifier) 4{ 5