首页  ·  知识 ·  
Label
      编辑:  图片来源:网络

LotusScript里的字符串处理函数在截取子字符串方面很方便好用。笔者数年前曾经比较三种脚本语言中的这类字符串处理函数,LotusScript的最全面实用。即使在C#这样新且类库设计优良的语言里,字符串类也没有类似的方法。

Vbscript

Javascript

LotusScript

LotusScript里函数的功能

Left

slice

Left

截取字符串最左边的指定长度的子字符串。

Right

substr

Right

截取字符串最右边的指定长度的子字符串。

Mid

substring

Mid

截取字符串指定位置起的指定长度的子字符串。

 

 

Strleft

在字符串S1里从左往右查找字符串S2,返回S1中位于S2左边的子字符串。

 

 

Strleftback

在字符串S1里从右往左查找字符串S2,返回S1中位于S2左边的子字符串。

 

 

Strright

在字符串S1里从左往右查找字符串S2,返回S1中位于S2右边的子字符串。

 

 

Strrightback

在字符串S1里从右往左查找字符串S2,返回S1中位于S2右边的子字符串。

LotusScript的这些函数使用习惯了,用其他语言的时候就会很想念。于是笔者便在C#里创建了一个StringUtility类,模拟了Strleft、Strleftback、Strright和Strrightback这些函数:

    //Mimic LotusScript string functions

   public class StringUtility
    {
       #region Left function
  //参数source为源字符串,value为要查找的子字符串,include指示返回的结果是否包含要查找的子字符串。以下几个方法的参数含义类似。
       public static string Left(string source,string value,bool include)
       {
           int pos = source.IndexOf(value);
           if (pos > -1)
           {
               if (include)
               {
                   return source.Substring(0, pos + value.Length);
               }
               else
               {
                   return source.Substring(0, pos);
               }
           }
           else
           {
               return "";
           }
       }
 
      //上面方法的重载,只接受两个字符串参数,返回的结果不包括要查找的子字符串。
       public static string Left(string source, string value)
       {
           return Left(source, value, false);
       }
 
      //将第一个Left方法的第二个字符串参数重载为字符类型。
       public static string Left(string source, char value,bool include)
       {
           return Left(source, Convert.ToString(value), include);
       }
 
       public static string Left(string source, char value)
       {
           return Left(source, value, false);
       }
 
        #endregion
 
       #region Right() function
 
       public static string Right(string source, string value, bool include)
       {
           int pos = source.IndexOf(value);
           if (pos > -1)
           {
               if (include)
               {
                   return source.Substring(pos);
               }
               else
               {
                   return source.Substring(pos + value.Length);
               }
           }
           else
           {
               return "";
           }
       }
 
       public static string Right(string source, string value)
       {
           return Right(source, value, false);
       }
 
       public static string Right(string source, char value, bool include)
       {
           return Right(source, Convert.ToString(value), include);
       }
 
       public static string Right(string source, char value)
       {
           return Right(source, value, false );
       }
 
       #endregion
 
       #region LeftBack() function
 
       public static string LeftBack(string source, string value, bool include)
       {
           int pos = source.LastIndexOf(value);
           if (pos > -1)
           {
               if (include)
               {
                   return source.Substring(0, pos + value.Length);
               }
               else
               {
                   return source.Substring(0, pos);
               }
           }
           else
           {
               return "";
           }
       }
 
       public static string LeftBack(string source, string value)
       {
           return LeftBack(source, value, false);
       }
 
       public static string LeftBack(string source, char value, bool include)
       {
           return LeftBack(source, Convert.ToString(value), false);
       }
 
       public static string LeftBack(string source, char value)
       {
           return LeftBack(source, value, false );
       }
 
       #endregion
 
       #region RightBack() function
 
       public static string RightBack(string source, string value, bool include)
       {
           int pos = source.LastIndexOf(value);
           if (pos > -1)
           {
               if (include)
               {
                   return source.Substring(pos);
               }
               else
               {
                   return source.Substring(pos + value.Length);
               }
           }
           else
           {
               return "";
           }
       }
 
       public static string RightBack(string source, string value)
       {
           return RightBack(source, value, false);
       }
 
       public static string RightBack(string source, char value, bool include)
       {
           return RightBack(source, Convert.ToString(value), include);
       }
 
       public static string RightBack(string source, char value)
       {
           return RightBack(source, value, false );
       }
 
       #endregion
   }
 
本文作者:starrow 来源:CSDN
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的
收藏至微信