C#自定义的字符串操作增强类实例
本文实例讲述了C#自定义的字符串操作增强类。分享给大家供大家参考。具体如下:
这个C#类在C#自由的字符串操作类的基础上进行的大幅度增强,把我们平时可能用到的字符串操作都做进去了,字符串的处理我想大部分编程都不可避免,有了这个类,可以节省你很多时间,同时可以根据自己的需要对这个C#字符串类进行扩展。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Text.RegularExpressions;
namespaceDotNet.Utilities
{
///<summary>
///字符串操作类
///1、GetStrArray(stringstr,charspeater,booltoLower)把字符串按照分隔符转换成List
///2、GetStrArray(stringstr)把字符串转按照,分割换为数据
///3、GetArrayStr(Listlist,stringspeater)把List按照分隔符组装成string
///4、GetArrayStr(Listlist)得到数组列表以逗号分隔的字符串
///5、GetArrayValueStr(Dictionary<int,int>list)得到数组列表以逗号分隔的字符串
///6、DelLastComma(stringstr)删除最后结尾的一个逗号
///7、DelLastChar(stringstr,stringstrchar)删除最后结尾的指定字符后的字符
///8、ToSBC(stringinput)转全角的函数(SBCcase)
///9、ToDBC(stringinput)转半角的函数(SBCcase)
///10、GetSubStringList(stringo_str,charsepeater)把字符串按照指定分隔符装成List去除重复
///11、GetCleanStyle(stringStrList,stringSplitString)将字符串样式转换为纯字符串
///12、GetNewStyle(stringStrList,stringNewStyle,stringSplitString,outstringError)将字符串转换为新样式
///13、SplitMulti(stringstr,stringsplitstr)分割字符串
///14、SqlSafeString(stringString,boolIsDel)
///</summary>
publicclassStringPlus
{
///<summary>
///把字符串按照分隔符转换成List
///</summary>
///<paramname="str">源字符串</param>
///<paramname="speater">分隔符</param>
///<paramname="toLower">是否转换为小写</param>
///<returns></returns>
publicstaticList<string>GetStrArray(stringstr,charspeater,booltoLower)
{
List<string>list=newList<string>();
string[]ss=str.Split(speater);
foreach(stringsinss)
{
if(!string.IsNullOrEmpty(s)&&s!=speater.ToString())
{
stringstrVal=s;
if(toLower)
{
strVal=s.ToLower();
}
list.Add(strVal);
}
}
returnlist;
}
///<summary>
///把字符串转按照,分割换为数据
///</summary>
///<paramname="str"></param>
///<returns></returns>
publicstaticstring[]GetStrArray(stringstr)
{
returnstr.Split(newChar[]{','});
}
///<summary>
///把List<string>按照分隔符组装成string
///</summary>
///<paramname="list"></param>
///<paramname="speater"></param>
///<returns></returns>
publicstaticstringGetArrayStr(List<string>list,stringspeater)
{
StringBuildersb=newStringBuilder();
for(inti=0;i<list.Count;i++)
{
if(i==list.Count-1)
{
sb.Append(list[i]);
}
else
{
sb.Append(list[i]);
sb.Append(speater);
}
}
returnsb.ToString();
}
///<summary>
///得到数组列表以逗号分隔的字符串
///</summary>
///<paramname="list"></param>
///<returns></returns>
publicstaticstringGetArrayStr(List<int>list)
{
StringBuildersb=newStringBuilder();
for(inti=0;i<list.Count;i++)
{
if(i==list.Count-1)
{
sb.Append(list[i].ToString());
}
else
{
sb.Append(list[i]);
sb.Append(",");
}
}
returnsb.ToString();
}
///<summary>
///得到数组列表以逗号分隔的字符串
///</summary>
///<paramname="list"></param>
///<returns></returns>
publicstaticstringGetArrayValueStr(Dictionary<int,int>list)
{
StringBuildersb=newStringBuilder();
foreach(KeyValuePair<int,int>kvpinlist)
{
sb.Append(kvp.Value+",");
}
if(list.Count>0)
{
returnDelLastComma(sb.ToString());
}
else
{
return"";
}
}
#region删除最后一个字符之后的字符
///<summary>
///删除最后结尾的一个逗号
///</summary>
publicstaticstringDelLastComma(stringstr)
{
returnstr.Substring(0,str.LastIndexOf(","));
}
///<summary>
///删除最后结尾的指定字符后的字符
///</summary>
publicstaticstringDelLastChar(stringstr,stringstrchar)
{
returnstr.Substring(0,str.LastIndexOf(strchar));
}
#endregion
///<summary>
///转全角的函数(SBCcase)
///</summary>
///<paramname="input"></param>
///<returns></returns>
publicstaticstringToSBC(stringinput)
{
//半角转全角:
char[]c=input.ToCharArray();
for(inti=0;i<c.Length;i++)
{
if(c[i]==32)
{
c[i]=(char)12288;
continue;
}
if(c[i]<127)
c[i]=(char)(c[i]+65248);
}
returnnewstring(c);
}
///<summary>
///转半角的函数(SBCcase)
///</summary>
///<paramname="input">输入</param>
///<returns></returns>
publicstaticstringToDBC(stringinput)
{
char[]c=input.ToCharArray();
for(inti=0;i<c.Length;i++)
{
if(c[i]==12288)
{
c[i]=(char)32;
continue;
}
if(c[i]>65280&&c[i]<65375)
c[i]=(char)(c[i]-65248);
}
returnnewstring(c);
}
///<summary>
///把字符串按照指定分隔符装成List去除重复
///</summary>
///<paramname="o_str"></param>
///<paramname="sepeater"></param>
///<returns></returns>
publicstaticList<string>GetSubStringList(stringo_str,charsepeater)
{
List<string>list=newList<string>();
string[]ss=o_str.Split(sepeater);
foreach(stringsinss)
{
if(!string.IsNullOrEmpty(s)&&s!=sepeater.ToString())
{
list.Add(s);
}
}
returnlist;
}
#region将字符串样式转换为纯字符串
///<summary>
///将字符串样式转换为纯字符串
///</summary>
///<paramname="StrList"></param>
///<paramname="SplitString"></param>
///<returns></returns>
publicstaticstringGetCleanStyle(stringStrList,stringSplitString)
{
stringRetrunValue="";
//如果为空,返回空值
if(StrList==null)
{
RetrunValue="";
}
else
{
//返回去掉分隔符
stringNewString="";
NewString=StrList.Replace(SplitString,"");
RetrunValue=NewString;
}
returnRetrunValue;
}
#endregion
#region将字符串转换为新样式
///<summary>
///将字符串转换为新样式
///</summary>
///<paramname="StrList"></param>
///<paramname="NewStyle"></param>
///<paramname="SplitString"></param>
///<paramname="Error"></param>
///<returns></returns>
publicstaticstringGetNewStyle(stringStrList,stringNewStyle,stringSplitString,outstringError)
{
stringReturnValue="";
//如果输入空值,返回空,并给出错误提示
if(StrList==null)
{
ReturnValue="";
Error="请输入需要划分格式的字符串";
}
else
{
//检查传入的字符串长度和样式是否匹配,如果不匹配,则说明使用错误。给出错误信息并返回空值
intstrListLength=StrList.Length;
intNewStyleLength=GetCleanStyle(NewStyle,SplitString).Length;
if(strListLength!=NewStyleLength)
{
ReturnValue="";
Error="样式格式的长度与输入的字符长度不符,请重新输入";
}
else
{
//检查新样式中分隔符的位置
stringLengstr="";
for(inti=0;i<NewStyle.Length;i++)
{
if(NewStyle.Substring(i,1)==SplitString)
{
Lengstr=Lengstr+","+i;
}
}
if(Lengstr!="")
{
Lengstr=Lengstr.Substring(1);
}
//将分隔符放在新样式中的位置
string[]str=Lengstr.Split(',');
foreach(stringbbinstr)
{
StrList=StrList.Insert(int.Parse(bb),SplitString);
}
//给出最后的结果
ReturnValue=StrList;
//因为是正常的输出,没有错误
Error="";
}
}
returnReturnValue;
}
#endregion
///<summary>
///分割字符串
///</summary>
///<paramname="str"></param>
///<paramname="splitstr"></param>
///<returns></returns>
publicstaticstring[]SplitMulti(stringstr,stringsplitstr)
{
string[]strArray=null;
if((str!=null)&&(str!=""))
{
strArray=newRegex(splitstr).Split(str);
}
returnstrArray;
}
publicstaticstringSqlSafeString(stringString,boolIsDel)
{
if(IsDel)
{
String=String.Replace("'","");
String=String.Replace("\"","");
returnString;
}
String=String.Replace("'","'");
String=String.Replace("\"",""");
returnString;
}
#region获取正确的Id,如果不是正整数,返回0
///<summary>
///获取正确的Id,如果不是正整数,返回0
///</summary>
///<paramname="_value"></param>
///<returns>返回正确的整数ID,失败返回0</returns>
publicstaticintStrToId(string_value)
{
if(IsNumberId(_value))
returnint.Parse(_value);
else
return0;
}
#endregion
#region检查一个字符串是否是纯数字构成的,一般用于查询字符串参数的有效性验证。
///<summary>
///检查一个字符串是否是纯数字构成的,一般用于查询字符串参数的有效性验证。(0除外)
///</summary>
///<paramname="_value">需验证的字符串。。</param>
///<returns>是否合法的bool值。</returns>
publicstaticboolIsNumberId(string_value)
{
returnQuickValidate("^[1-9]*[0-9]*$",_value);
}
#endregion
#region快速验证一个字符串是否符合指定的正则表达式。
///<summary>
///快速验证一个字符串是否符合指定的正则表达式。
///</summary>
///<paramname="_express">正则表达式的内容。</param>
///<paramname="_value">需验证的字符串。</param>
///<returns>是否合法的bool值。</returns>
publicstaticboolQuickValidate(string_express,string_value)
{
if(_value==null)returnfalse;
RegexmyRegex=newRegex(_express);
if(_value.Length==0)
{
returnfalse;
}
returnmyRegex.IsMatch(_value);
}
#endregion
}
}
希望本文所述对大家的C#程序设计有所帮助。