⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dividetext.cs

📁 将字符串(中英文)分解为指定长度的字符数组
💻 CS
字号:
        /* 功能:将字符串划分为指定长度的字符串组
         * 日期:2007-10-24
         * 作者:leexm
         * 注释:指定长度为字节长度,汉字为两个字节
         */
        private string[] DivideText(string strSrcText, int iLength)
        {
            if (iLength < 1) return null;

            byte[] byteSrcText = System.Text.Encoding.Default.GetBytes(strSrcText); //源字符串转换为字节数组
            int iCount = byteSrcText.Length; //源字符串长度(汉字的长度为2)

            //返回字符长度=1,则返回每个字符的ASCII码十六进制字符
            if (iLength < 2)
            {
                string[] strRet1 = new string[iCount];
                for (int i = 0; i < iCount; i++)
                    strRet1[i] = byteSrcText[i].ToString("X");
                return strRet1;
            }

            //返回字符长度大于原字符长度,则返回整个字符串
            if (iLength >= iCount)
            {
                string[] strRet2 = new string[1];
                strRet2[0] = strSrcText;
                return strRet2;
            }

            //返回指定长度字符,字符串包括汉字
            //byte[] byteSubText = new byte[iLength];
            byte[] byteChar = new byte[1]; //单字节字符
            byte[] byteWord = new byte[2]; //双字节字符(汉字)
            System.Collections.ArrayList lstTmp = new System.Collections.ArrayList();
            string strTmp = "";
            int ii = 0, jj = 0;
            while (ii < iCount)
            {
                if (byteSrcText[ii] >= 0x80) // 汉字
                {
                    if (jj >= iLength - 1) //上一组字符串结束
                    {
                        //if (jj == iLength - 1) byteSubText[jj] = 0; //如果最后位为汉字的首字节,则将该汉字作为下一组字符串处理
                        //strTmp = Encoding.Default.GetString(byteSubText);
                        lstTmp.Add(strTmp);
                        strTmp = "";
                        jj = 0; // 下一组字符串开始
                    }
                    //byteSubText[jj] = byteSrcText[ii];
                    //byteSubText[jj + 1] = byteSrcText[ii + 1];
                    byteWord[0] = byteSrcText[ii];
                    byteWord[1] = byteSrcText[ii + 1];
                    strTmp += System.Text.Encoding.Default.GetString(byteWord);
                    ii += 2;
                    jj += 2;
                }
                else //字母或数字字符
                {
                    if (jj >= iLength) // 上一组字符串结束
                    {
                        //strTmp = Encoding.Default.GetString(byteSubText);
                        lstTmp.Add(strTmp);
                        strTmp = "";
                        jj = 0; // 下一组字符串开始
                    }
                    //byteSubText[jj] = byteSrcText[ii];
                    byteChar[0] = byteSrcText[ii];
                    strTmp += System.Text.Encoding.Default.GetString(byteChar);
                    ii++;
                    jj++;
                }
            }
            //剩下的字符处理
            if (jj > 0)
            {
                //for (int j = jj; j < iLength; j++)
                //byteSubText[j] = 0;
                //strTmp = Encoding.Default.GetString(byteSubText);
                lstTmp.Add(strTmp);
            }

            //返回字符串数组
            string[] strRet3 = new string[lstTmp.Count];
            for (int k = 0; k < lstTmp.Count; k++)
                strRet3[k] = (string)lstTmp[k];
            return strRet3;
        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -