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;

        }

  • 相关阅读:
    Jquery学习系列-制作Menu
    关于javascript里的parseInt() 与 parseFloaat() 文本转换为数字
    javascript简述
    【代码片段】HTML5基本结构及常用默认模版
    赋值运算符
    【代码片段】jQuery实现页面滚动时层智能浮动定位Fixed Floating Elements
    【代码片段】formLogin
    算数运算符
    关于javascript里的toFixed()方法格式化数字
    关于javascript里的setTimerout()设定时间
  • 原文地址:https://www.cnblogs.com/DTWolf/p/4670149.html
Copyright © 2011-2022 走看看