zoukankan      html  css  js  c++  java
  • 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;
    }


    /// 求字符串长度
    /// 求字符串长度
    ///
    //////
    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)
    ///
    /// 截字符串
    ///
    ///所要截取的字符串 ///要载得字符串的长度 ///
    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 {
    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{
    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;iif(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++ string学习
    二叉树的前序遍历
    My Solution to Lowest Common Ancestor of a Binary Tree Part I(TopDown Approach)
    求二叉树节点总数
    二叉树的中序遍历
    轻松搞定面试中的二叉树题目
    VS2005 CrystalReport开发Web应用
    ASP.NET 2.0移动开发入门之使用模拟器
    [原创]Ajax UpLoadFile 多个大文件上传控件,已更新。
  • 原文地址:https://www.cnblogs.com/xyzhuzhou/p/2228293.html
Copyright © 2011-2022 走看看