C#中一些字符串操作的常用用法
发布时间:2020-12-15 05:44:01 所属栏目:百科 来源:网络整理
导读:C#中一些字符串操作的常用用法 //获得汉字的区位码 byte[]array=newbyte[2]; array=System.Text.Encoding.Default.GetBytes("啊"); inti1=(short)(array[0]-'' ''); inti2=(short)(array[1]-'' ''); //unicode解码方式下的汉字码 array=System.Text.Encodin
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码 int ASC(String Data) { byte[] b = System.Text.Encoding.Default.GetBytes(Data); int p=0; if(b.Length==1) //如果为英文字符直接返回 return (int)b[0]; for( int i = 0; i < b.Length; i++) { p = (int)b[ i ]; p = p * 256 + b[ i+1] - 65536; } return p; } /// <summary>求字符串长度 /// 求字符串长度 /// </summary> /// <param name="inputString"></param> /// <returns></returns> int len(String inputString) { string s=inputString; int len=s.Length;//willoutputa s6 byte[]sarr=System.Text.Encoding.Default.GetBytes(s); len=sarr.Length;//willoutputa s3+3*2=9 return len; } //检测含有中文字符串的实际长度 str为要检测的字符串: ASCIIEncoding n = new ASCIIEncoding(); byte[] b = n.GetBytes(str); int l = 0; // l 为字符串之实际长度 for (int i=0;i <= b.Length-1;i++) { if (b[i] ==63) //判断是否为汉字或全脚符号 { l++; } l++; } //载字符串修正版(yaosansi) /// <summary> /// 截字符串 /// </summary> /// <param name="inputString">所要截取的字符串</param> /// <param name="len">要载得字符串的长度</param> /// <returns></returns> public static string CutString(string inputString,int len) { ASCIIEncoding ascii = new ASCIIEncoding(); int tempLen=0; string tempString=""; byte[] s = ascii.GetBytes(inputString); for(int i=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+=""; return tempString; } //截取字符串(原稿) public static string CutString(string inputString,int len) { ASCIIEncoding ascii = new ASCIIEncoding(); int tempLen=0; string tempString=""; byte[] s = ascii.GetBytes(inputString); for(int i=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+="…"; return tempString; } //在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,nBytesSize); 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容