zoukankan      html  css  js  c++  java
  • C#对字符串执行字节操作

    写两个扩展方法,分别现“得到字符串的字长度”和“按字节长度截取字符串”的功能。

    public static class Test
        {
            /// <summary>
            /// 按字节长度截取字符串
            /// </summary>
            /// <param name="str"></param>
            /// <param name="num">要截取的字节个数</param>
            /// <returns></returns>
            public static string SubBytestring(this string str, int num)
            {
                string strNum = str.Trim();
                if (Encoding.Default.GetBytes(strNum).Length <= num)
                {
                    return strNum;
                }
                byte[] bytes2 = Encoding.Default.GetBytes(str.Substring(0,str.Length<num?str.Length:num));
                string strNum1 = Encoding.Default.GetString(bytes2, 0, num);
                int len = strNum1.Length;
                if (str.Substring(0, len) != strNum1)
                {
                    return Encoding.Default.GetString(bytes2, 0, num - 1);
                }
                return strNum1;
            }
            /// <summary>
            /// 得到字符串的字节长度
            /// </summary>
            /// <param name="str"></param>
            /// <returns></returns>
            public static int ByteLength(this string str)
            {
              return  Encoding.Default.GetBytes(str.Trim()).Length;
            }
        }

    调用:

      string str = "a中b华3".SubBytestring(6);
      int len = "a中b华3".ByteLength();

    参考:http://yandavid.blog.163.com/blog/static/10779084201010182383338/

  • 相关阅读:
    Linux ACL 权限之进阶篇
    Linux umask
    Linux 特殊权限 SUID,SGID,SBIT
    隔离 docker 容器中的用户
    理解 docker 容器中的 uid 和 gid
    Linux ugo 权限
    Dockerfile 中的 COPY 与 ADD 命令
    2013年全年总结
    参加2013中国大数据技术大会(BDTC2013)
    读书笔记2013第18本:《像外行一样思考,像专家一样实践》
  • 原文地址:https://www.cnblogs.com/lgzslf/p/2375120.html
Copyright © 2011-2022 走看看