C#常用的字符串扩展方法汇总
本文实例汇总了C#常用的字符串扩展方法,分享给大家供大家参考。具体如下:
EString.cs文件如下:
///<summary> ///扩展字符串类 ///</summary> publicstaticclassEString { #region数据转换
#region转Int ///<summary> ///转Int,失败返回0 ///</summary> ///<paramname="e"></param> ///<returns></returns> publicstaticintToInt(thisstringt) { intn; if(!int.TryParse(t,outn)) return0; returnn; }
///<summary> ///转Int,失败返回pReturn ///</summary> ///<paramname="e"></param> ///<paramname="pReturn">失败返回的值</param> ///<returns></returns> publicstaticintToInt(thisstringt,intpReturn) { intn; if(!int.TryParse(t,outn)) returnpReturn; returnn; }
///<summary> ///是否是Inttrue:是false:否 ///</summary> ///<paramname="t"></param> ///<returns></returns> publicstaticboolIsInt(thisstringt) { intn; returnint.TryParse(t,outn); } #endregion
#region转Int16 ///<summary> ///转Int,失败返回0 ///</summary> ///<paramname="e"></param> ///<returns></returns> publicstaticInt16ToInt16(thisstringt) { Int16n; if(!Int16.TryParse(t,outn)) return0; returnn; }
///<summary> ///转Int,失败返回pReturn ///</summary> ///<paramname="e"></param> ///<paramname="pReturn">失败返回的值</param> ///<returns></returns> publicstaticInt16ToInt16(thisstringt,Int16pReturn) { Int16n; if(!Int16.TryParse(t,outn)) returnpReturn; returnn; }
///<summary> ///是否是Inttrue:是false:否 ///</summary> ///<paramname="t"></param> ///<returns></returns> publicstaticboolIsInt16(thisstringt) { Int16n; returnInt16.TryParse(t,outn); } #endregion
#region转byte ///<summary> ///转byte,失败返回0 ///</summary> ///<paramname="e"></param> ///<returns></returns> publicstaticbyteTobyte(thisstringt) { byten; if(!byte.TryParse(t,outn)) return0; returnn; }
///<summary> ///转byte,失败返回pReturn ///</summary> ///<paramname="e"></param> ///<paramname="pReturn">失败返回的值</param> ///<returns></returns> publicstaticbyteTobyte(thisstringt,bytepReturn) { byten; if(!byte.TryParse(t,outn)) returnpReturn; returnn; }
///<summary> ///是否是bytetrue:是false:否 ///</summary> ///<paramname="t"></param> ///<returns></returns> publicstaticboolIsbyte(thisstringt) { byten; returnbyte.TryParse(t,outn); } #endregion
#region转Long ///<summary> ///转Long,失败返回0 ///</summary> ///<paramname="e"></param> ///<returns></returns> publicstaticlongToLong(thisstringt) {
longn; if(!long.TryParse(t,outn)) return0; returnn; }
///<summary> ///转Long,失败返回pReturn ///</summary> ///<paramname="e"></param> ///<paramname="pReturn">失败返回的值</param> ///<returns></returns> publicstaticlongToLong(thisstringt,longpReturn) { longn; if(!long.TryParse(t,outn)) returnpReturn; returnn; }
///<summary> ///是否是Longtrue:是false:否 ///</summary> ///<paramname="t"></param> ///<returns></returns> publicstaticboolIsLong(thisstringt) { longn; returnlong.TryParse(t,outn); } #endregion
#region转Double ///<summary> ///转Int,失败返回0 ///</summary> ///<paramname="e"></param> ///<returns></returns> publicstaticdoubleToDouble(thisstringt) { doublen; if(!double.TryParse(t,outn)) return0; returnn; }
///<summary> ///转Double,失败返回pReturn ///</summary> ///<paramname="e"></param> ///<paramname="pReturn">失败返回的值</param> ///<returns></returns> publicstaticdoubleToDouble(thisstringt,doublepReturn) { doublen; if(!double.TryParse(t,outn)) returnpReturn; returnn; }
///<summary> ///是否是Doubletrue:是false:否 ///</summary> ///<paramname="t"></param> ///<returns></returns> publicstaticboolIsDouble(thisstringt) { doublen; returndouble.TryParse(t,outn); } #endregion
#region转Decimal ///<summary> ///转Decimal,失败返回0 ///</summary> ///<paramname="e"></param> ///<returns></returns> publicstaticdecimalToDecimal(thisstringt) { decimaln; if(!decimal.TryParse(t,outn)) return0; returnn; }
///<summary> ///转Decimal,失败返回pReturn ///</summary> ///<paramname="e"></param> ///<paramname="pReturn">失败返回的值</param> ///<returns></returns> publicstaticdecimalToDecimal(thisstringt,decimalpReturn) { decimaln; if(!decimal.TryParse(t,outn)) returnpReturn; returnn; }
///<summary> ///是否是Decimaltrue:是false:否 ///</summary> ///<paramname="t"></param> ///<returns></returns> publicstaticboolIsDecimal(thisstringt) { decimaln; returndecimal.TryParse(t,outn); } #endregion
#region转DateTime ///<summary> ///转DateTime,失败返回当前时间 ///</summary> ///<paramname="e"></param> ///<returns></returns> publicstaticDateTimeToDateTime(thisstringt) { DateTimen; if(!DateTime.TryParse(t,outn)) returnDateTime.Now; returnn; }
///<summary> ///转DateTime,失败返回pReturn ///</summary> ///<paramname="e"></param> ///<paramname="pReturn">失败返回的值</param> ///<returns></returns> publicstaticDateTimeToDateTime(thisstringt,DateTimepReturn) { DateTimen; if(!DateTime.TryParse(t,outn)) returnpReturn; returnn; }
///<summary> ///转DateTime,失败返回pReturn ///</summary> ///<paramname="e"></param> ///<paramname="pReturn">失败返回的值</param> ///<returns></returns> publicstaticstringToDateTime(thisstringt,stringpFormat,stringpReturn) { DateTimen; if(!DateTime.TryParse(t,outn)) returnpReturn; returnn.ToString(pFormat); }
///<summary> ///转DateTime,失败返回空 ///</summary> ///<paramname="e"></param> ///<paramname="pReturn">失败返回的值</param> ///<returns></returns> publicstaticstringToDateTime(thisstringt,stringpFormat) { returnt.ToDateTime(pFormat,string.Empty); }
publicstaticstringToShortDateTime(thisstringt) { returnt.ToDateTime("yyyy-MM-dd",string.Empty); }
///<summary> ///是否是DateTimetrue:是false:否 ///</summary> ///<paramname="t"></param> ///<returns></returns> publicstaticboolIsDateTime(thisstringt) { DateTimen; returnDateTime.TryParse(t,outn); } #endregion
#region与int[]相关 ///<summary> ///转int[],字符串以逗号(,)隔开,请确保字符串内容都合法,否则会出错 ///</summary> ///<paramname="pStr"></param> ///<returns></returns> publicstaticint[]ToIntArr(thisstringt) { returnt.ToIntArr(newchar[]{','}); }
///<summary> ///转int[],字符串以逗号(,)隔开,请确保字符串内容都合法,否则会出错 ///</summary> ///<paramname="t"></param> ///<paramname="pSplit">隔开的</param> ///<returns></returns> publicstaticint[]ToIntArr(thisstringt,char[]pSplit) { if(t.Length==0) { returnnewint[]{}; }
string[]ArrStr=t.Split(pSplit,StringSplitOptions.None); int[]iStr=newint[ArrStr.Length];
for(inti=0;i<ArrStr.Length;i++) iStr[i]=int.Parse(ArrStr[i]);
returniStr; }
#endregion
#region过滤字符串的非int,重新组合成字符串 ///<summary> ///过滤字符串的非int,重新组合成字符串 ///</summary> ///<paramname="t"></param> ///<paramname="pSplit">分隔符</param> ///<returns></returns> publicstaticstringClearNoInt(thisstringt,charpSplit) { stringsStr=string.Empty; string[]ArrStr=t.Split(pSplit);
for(inti=0;i<ArrStr.Length;i++) { stringlsStr=ArrStr[i];
if(lsStr.IsInt()) sStr+=lsStr+pSplit; else continue; }
if(sStr.Length>0) sStr=sStr.TrimEnd(pSplit);
returnsStr; }
///<summary> ///过滤字符串的非int,重新组合成字符串 ///</summary> ///<paramname="t"></param> ///<returns></returns> publicstaticstringClearNoInt(thisstringt) { returnt.ClearNoInt(','); } #endregion
#region是否可以转换成int[] ///<summary> ///是否可以转换成int[],true:是,false:否 ///</summary> ///<paramname="t"></param> ///<paramname="pSplit">分隔符</param> ///<returns></returns> publicstaticboolIsIntArr(thisstringt,charpSplit) { string[]ArrStr=t.Split(pSplit); boolb=true;
for(inti=0;i<ArrStr.Length;i++) { if(!ArrStr[i].IsInt()) { b=false; break; } }
returnb; }
///<summary> ///是否可以转换成int[],true:是,false:否 ///</summary> ///<paramname="t"></param> ///<returns></returns> publicstaticboolIsIntArr(thisstringt) { returnt.IsIntArr(','); } #endregion
#endregion
#region载取左字符 ///<summary> ///载取左字符 ///</summary> ///<paramname="t"></param> ///<paramname="pLen">字符个数</param> ///<paramname="pReturn">超出时后边要加的返回的内容</param> ///<returns></returns> publicstaticstringLeft(thisstringt,intpLen,stringpReturn) { if(t==null||t.Length==0) returnstring.Empty; pLen*=2; inti=0,j=0; foreach(charcint) { if(c>127) { i+=2; } else { i++; }
if(i>pLen) { returnt.Substring(0,j)+pReturn; }
j++; }
returnt; }
publicstaticstringLeft(thisstringt,intpLen) { returnLeft(t,pLen,string.Empty); }
publicstaticstringStrLeft(thisstringt,intpLen) { if(t==null) { return""; } if(t.Length>pLen) { returnt.Substring(0,pLen); } returnt; } #endregion
#region删除文件名或路径的特殊字符
privateclassClearPathUnsafeList { publicstaticreadonlystring[]unSafeStr={"/","\\",":","*","?","\"","<",">","|"}; }
///<summary> ///删除文件名或路径的特殊字符 ///</summary> ///<paramname="t"></param> ///<returns></returns> publicstaticstringClearPathUnsafe(thisstringt) { foreach(stringsinClearPathUnsafeList.unSafeStr) { t=t.Replace(s,""); }
returnt; } #endregion
#region字符串真实长度如:一个汉字为两个字节 ///<summary> ///字符串真实长度如:一个汉字为两个字节 ///</summary> ///<paramname="s"></param> ///<returns></returns> publicstaticintLengthReal(thisstrings) { returnEncoding.Default.GetBytes(s).Length; } #endregion
#region去除小数位最后为0的 ///<summary> ///去除小数位最后为0的 ///</summary> ///<paramname="t"></param> ///<returns></returns> publicstaticdecimalClearDecimal0(thisstringt) { decimald; if(decimal.TryParse(t,outd)) { returndecimal.Parse(double.Parse(d.ToString("g")).ToString()); } return0; } #endregion
#region进制转换 ///<summary> ///16进制转二进制 ///</summary> ///<paramname="t"></param> ///<returns></returns> publicstaticstringChange16To2(thisstringt) { StringBinOne=string.Empty; StringBinAll=string.Empty; char[]nums=t.ToCharArray(); for(inti=0;i<nums.Length;i++) { stringnumber=nums[i].ToString(); intnum=Int32.Parse(number,System.Globalization.NumberStyles.HexNumber);
BinOne=Convert.ToString(num,2).PadLeft(4,'0'); BinAll=BinAll+BinOne; } returnBinAll; }
///<summary> ///二进制转十进制 ///</summary> ///<paramname="t"></param> ///<returns></returns> publicstaticInt64Change2To10(thisstringt) { char[]arrc=t.ToCharArray(); Int64all=0,indexC=1; for(inti=arrc.Length-1;i>=0;i--) { if(arrc[i]=='1') { all+=indexC; } indexC=indexC*2; }
returnall; }
///<summary> ///二进制转换byte[]数组 ///</summary> ///<paramname="s"></param> ///<returns></returns> publicstaticbyte[]Change2ToBytes(thisstringt) { List<byte>list=newList<byte>();
char[]arrc=t.ToCharArray(); byten=0; charc; intj=0; //倒序获取位 for(inti=arrc.Length-1;i>=0;i--) { c=arrc[i];
if(c=='1') { n+=Convert.ToByte(Math.Pow(2,j)); } j++;
if(j%8==0) { list.Add(n); j=0; n=0; } }
//剩余最高位 if(n>0) list.Add(n);
byte[]arrb=newbyte[list.Count];
intj1=0; //倒序 for(inti=list.Count-1;i>=0;i--) { arrb[j1]=list[i]; j1++; } returnarrb; }
///<summary> ///二进制转化为索引id数据,从右到左 ///</summary> ///<paramname="t"></param> ///<returns></returns> publicstaticint[]Change2ToIndex(thisstringt) { List<int>list=newList<int>(); char[]arrc=t.ToCharArray(); charc; intj=0;
//倒序获取位 for(inti=arrc.Length-1;i>=0;i--) { j++; c=arrc[i];
if(c=='1') { list.Add(j); } }
returnlist.ToArray(); } #endregion
#regionhtmlurl编码解码 ///<summary> ///HtmlEncode ///</summary> ///<paramname="pStr"></param> ///<returns></returns> publicstaticstringHtmlEncode(thisstringt) { returnHttpContext.Current.Server.HtmlEncode(t); }
///<summary> ///HtmlDecode ///</summary> ///<paramname="pStr"></param> ///<returns></returns> publicstaticstringHtmlDecode(thisstringt) { returnHttpContext.Current.Server.HtmlDecode(t); }
///<summary> ///URLEncode ///</summary> ///<paramname="pStr"></param> ///<returns></returns> publicstaticstringURLEncode(thisstringt) { returnHttpContext.Current.Server.UrlEncode(t); }
///<summary> ///URLDecode ///</summary> ///<paramname="pStr"></param> ///<returns></returns> publicstaticstringURLDecode(thisstringt) { returnHttpContext.Current.Server.UrlDecode(t); } #endregion
#region向客户端输出内容 ///<summary> ///向客户端输出内容 ///</summary> ///<paramname="t"></param> publicstaticvoidWrite(thisstringt) { HttpContext.Current.Response.Write(t); }
///<summary> ///向客户端输出内容 ///</summary> ///<paramname="t"></param> publicstaticvoidWriteLine(thisstringt) { HttpContext.Current.Response.Write(t+"<br/>"); } #endregion }