• 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欢
            }

  • 相关阅读:
    Oracle第五周测验
    软件测试第五周
    Oracle第四周作业
    c++第二章测试
    软件测试第四章
    软件测试 第三章
    Centos 安装.NET Core环境
    .net core 集成极光推送
    Swagger添加文件上传测试
    linux firewall
  • 原文地址:https://www.cnblogs.com/gisoracle/p/1576879.html
Copyright © 2020-2023  润新知