建站极客
软件编程 C#教程 正文
C#中一些字符串操作的常用用法
所属分类:
软件编程 / C#教程
阅读数:
122
收藏 0
赞 0
分享
C#中一些字符串操作的常用用法 //获得汉字的区位码 byte[]array=newbyte[2]; array=System.Text.Encoding.Default.GetBytes("啊"); inti1=(short)(array[0]-''\0''); inti2=(short)(array[1]-''\0''); //unicode解码方式下的汉字码 array=System.Text.Encoding.Unicode.GetBytes("啊"); i1=(short)(array[0]-''\0''); i2=(short)(array[1]-''\0''); //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,0,nBytesSize);
C#实现写系统日志的方法 这篇文章主要介绍了C#实现写系统日志的方法,涉及C#针对系统日志的创建、写入及删除等技巧,非常具有实用价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
C#编程实现自定义热键的方法 这篇文章主要介绍了C#编程实现自定义热键的方法,涉及C#键盘按键设置的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
C#实现读取被进程占用的文件实现方法 这篇文章主要介绍了C#实现读取被进程占用的文件实现方法,涉及C#进程操作及文件读取的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
C#获取任务栏显示进程的方法 这篇文章主要介绍了C#获取任务栏显示进程的方法,涉及C#针对进程操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
C#调用dos窗口获取相关信息的方法 这篇文章主要介绍了C#调用dos窗口获取相关信息的方法,涉及C#调用dos窗口及进程操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
C#通过Semaphore类控制线程队列的方法 这篇文章主要介绍了C#通过Semaphore类控制线程队列的方法,涉及Semaphore类操作线程队列的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
C#使用Dispose模式实现手动对资源的释放 这篇文章主要介绍了C#使用Dispose模式实现手动对资源的释放,涉及C#采用Dispose模式操作资源的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
C#动态创建button的方法 这篇文章主要介绍了C#动态创建button的方法,涉及C#按钮属性动态设置的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
C#编程获取资源文件中图片的方法 这篇文章主要介绍了C#编程获取资源文件中图片的方法,涉及C#针对项目中资源文件操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
WinForm实现窗体最大化并遮盖任务栏的方法 这篇文章主要介绍了WinForm实现窗体最大化并遮盖任务栏的方法,涉及C#实现WinForm窗体全屏显示的实现及调用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
查看更多