zoukankan      html  css  js  c++  java
  • C#截取中英文混合字符串分行显示

     private int GetStrByteLength(string str)

        {

            return System.Text.Encoding.Default.GetByteCount(str);

        }

        private string SubStrLenth(string str, int startIndex, int length)

        {

            int strlen = GetStrByteLength(str);

            if (startIndex + 1 > strlen)

            {

                return "";

            }

            int j = 0;//记录遍历的字节数

            int L = 0;//记录每次截取开始,遍历到开始的字节位,才开始记字节数

            int strW = 0;//字符宽度

            bool b = false;//当每次截取时,遍历到开始截取的位置才为true

            string restr = string.Empty;

            for (int i = 0; i < str.Length; i++)

            {

                char C = str[i];

                if (ISChinese(C))

                {

                    strW = 2;

                }

                else

                {

                    strW = 1;

                }

                if ((L == length-1) && (L + strW > length))

                {

                    b = false;

                    break;

                }

                if (j >= startIndex)

                {

                    restr += C;

                    b = true;

                }

              

                j += strW;



                if (b)

                {

                    L += strW;

                    if (((L + 1) > length))

                    {

                        b = false;

                        break;

                    }

                }



            }

            return restr;

        }

  • 相关阅读:
    [萌新向]在windows环境下配置基于wsl的Vim文本编辑器
    模板集合
    MATLAB:非线性规划fmincon
    Linux虚拟机网络配置
    Hyper-V 下linux虚拟机静态IP上网配置的两种方式(2)
    Hyper-V 下linux虚拟机静态IP上网配置的两种方式(1)
    centos6.5单机配置NFS
    mysql 8.0 忘记密码
    前端上传base64图片到七牛云总结
    个人作业——软件工程实践总结&个人技术博客
  • 原文地址:https://www.cnblogs.com/DTWolf/p/4670149.html
Copyright © 2011-2022 走看看