C#中一些字符串操作的常用用法
C#中一些字符串操作的常用用法
发布时间:2016-12-28 来源:查字典编辑
摘要:C#中一些字符串操作的常用用法//获得汉字的区位码byte[]array=newbyte[2];array=System.Text.Enco...

C#中一些字符串操作的常用用法

//获得汉字的区位码

byte[]array=newbyte[2];

array=System.Text.Encoding.Default.GetBytes("啊");

inti1=(short)(array[0]-'''');

inti2=(short)(array[1]-'''');

//unicode解码方式下的汉字码

array=System.Text.Encoding.Unicode.GetBytes("啊");

i1=(short)(array[0]-'''');

i2=(short)(array[1]-'''');

//unicode反解码为汉字

stringstr="4a55";

strings1=str.Substring(0,2);

strings2=str.Substring(2,2);

intt1=Convert.ToInt32(s1,16);

intt2=Convert.ToInt32(s2,16);

array[0]=(byte)t1;

array[1]=(byte)t2;

strings=System.Text.Encoding.Unicode.GetString(array);

//default方式反解码为汉字

array[0]=(byte)196;

array[1]=(byte)207;

s=System.Text.Encoding.Default.GetString(array);

//取字符串长度

s="iam方枪枪";

intlen=s.Length;//willoutputas6

byte[]sarr=System.Text.Encoding.Default.GetBytes(s);

len=sarr.Length;//willoutputas3+3*2=9

//字符串相加

System.Text.StringBuildersb=newSystem.Text.StringBuilder("");

sb.Append("i");

sb.Append("am");

sb.Append("方枪枪");

//获取ASC码

intASC(StringData)

{

byte[]b=System.Text.Encoding.Default.GetBytes(Data);

intp=0;

if(b.Length==1)//如果为英文字符直接返回

return(int)b[0];

for(inti=0;i<b.Length;i++)

{

p=(int)b[i];

p=p*256+b[i+1]-65536;

}

returnp;

}

///<summary>求字符串长度

///求字符串长度

///</summary>

///<paramname="inputString"></param>

///<returns></returns>

intlen(StringinputString)

{strings=inputString;

intlen=s.Length;//willoutputas6

byte[]sarr=System.Text.Encoding.Default.GetBytes(s);

len=sarr.Length;//willoutputas3+3*2=9

returnlen;

}

//检测含有中文字符串的实际长度

str为要检测的字符串:

ASCIIEncodingn=newASCIIEncoding();

byte[]b=n.GetBytes(str);

intl=0;//l为字符串之实际长度

for(inti=0;i<=b.Length-1;i++)

{

if(b[i]==63)//判断是否为汉字或全脚符号

{

l++;

}

l++;

}

//载字符串修正版(yaosansi)

///<summary>

///截字符串

///</summary>

///<paramname="inputString">所要截取的字符串</param>

///<paramname="len">要载得字符串的长度</param>

///<returns></returns>

publicstaticstringCutString(stringinputString,intlen)

{

ASCIIEncodingascii=newASCIIEncoding();

inttempLen=0;

stringtempString="";

byte[]s=ascii.GetBytes(inputString);

for(inti=0;i<s.Length-1;i++)

{

if((int)s[i]==63)

{

tempLen+=2;

}

else

{

tempLen+=1;

}

try

{

tempString+=inputString.Substring(i,1);

}

catch

{

break;

}

if(tempLen>len)

break;

}

//如果截过则加上半个省略号

byte[]mybyte=System.Text.Encoding.Default.GetBytes(inputString);

if(mybyte.Length>len)

tempString+="";

returntempString;

}

//截取字符串(原稿)

publicstaticstringCutString(stringinputString,intlen)

{

ASCIIEncodingascii=newASCIIEncoding();

inttempLen=0;

stringtempString="";

byte[]s=ascii.GetBytes(inputString);

for(inti=0;i<s.Length;i++)

{

if((int)s[i]==63)

{

tempLen+=2;

}

else

{

tempLen+=1;

}

try

{

tempString+=inputString.Substring(i,1);

}

catch

{

break;

}

if(tempLen>len)

break;

}

//如果截过则加上半个省略号

byte[]mybyte=System.Text.Encoding.Default.GetBytes(inputString);

if(mybyte.Length>len)

tempString+="…";

returntempString;

}

//在C#中截取指定长度的中文字符串

privatestaticstringSubString(stringstringToSub,intlength){

Regexregex=newRegex("[u4e00-u9fa5]+",RegexOptions.Compiled);

char[]stringChar=stringToSub.ToCharArray();

StringBuildersb=newStringBuilder();

intnLength=0;

for(inti=0;i<stringChar.Length;i++){

if(regex.IsMatch((stringChar[i]).ToString())){

sb.Append(stringChar[i]);

nLength+=2;

}

else{

sb.Append(stringChar[i]);

nLength=nLength+1;

}

if(nLength>length)

break;

}

returnsb.ToString();

}

/////////////////////////////////////////////////////////////////////

string-->bytearray

byte[]data=Syste.Text.Encoding.ASCII.GetBytes(string);

string-->byte

bytedata=Convert.ToByte(string);

byte[]-->string

stringstring=Encoding.ASCII.GetString(bytes,0,nBytesSize);

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C#教程学习
热门C#教程学习
编程开发子分类