zoukankan      html  css  js  c++  java
  • c#中英文混合字符串截取指定长度

    //字符是否为汉字
            public bool IsChinese(char c)
            {
                return (int)c >= 0x4E00 && (int)c <= 0x9FA5;
            }
            //获得字节长度
            private int getLengthb(string str)
            {
                return System.Text.Encoding.Default.GetByteCount(str);
            }

            //c#的中英文混合字符串截取指定长度,startidx从0开始 by gisoracle@126.com
            public string getStrLenB(string str, int startidx, int len)
            {
                int Lengthb = getLengthb(str);
                if (startidx + 1 > Lengthb)
                {
                    return "";
                }
                int j = 0;
                int l = 0;
                int strw = 0;//字符的宽度
                bool b = false;
                string rstr = "";
                for (int i = 0; i < str.Length; i++)
                {
                    char c = str[i];
                    if (j >= startidx)
                    {
                        rstr = rstr + c;
                        b = true;
                    }
                    if (IsChinese(c))
                    {
                        strw = 2;
                    }
                    else
                    {
                        strw = 1;
                    }
                    j = j + strw;
                    if (b)
                    {
                        l = l + strw;
                        if ((l+1)>= len) break;

                    }


                }
                return rstr;

            }

            private void button4_Click(object sender, EventArgs e) //测试by yl gisoracle@126.com
            {
                MessageBox.Show(getStrLenB("gisoracle欢迎你gisoracle", 0, 10));//gisoracle
                MessageBox.Show(getStrLenB("gisoracle欢迎你gisoracle", 1, 10));//isoracle欢
                MessageBox.Show(getStrLenB("gisoracle欢迎你gisoracle", 2, 10));//isoracle欢

             }

  • 相关阅读:
    使用youtube-dl下载B站视频
    【北邮人论坛帖子备份】14 考公与考研、入党、秋招
    观《菊次郎的夏天》有感
    git远端分支改名并以当前分支为base新建分支
    依赖明明存在pom.xml却报Dependency 'groupId:artifactId:version' not found的错
    在服务器上搭建git服务
    【北邮人论坛帖子备份】【秋招】21届渣硕BAT后端研发上岸心得
    【北邮人论坛帖子备份】【心得】做科研写论文的一些小经验
    【北邮人论坛帖子备份】 图森同学 | Gala:一个北邮非典型学霸的成长之路
    Python-for循环
  • 原文地址:https://www.cnblogs.com/zcm123/p/2662036.html
Copyright © 2011-2022 走看看