zoukankan      html  css  js  c++  java
  • 中英混排做字符串精确截取

       private ArrayList GetSeparateSubString(string mOrigianlString, int subStringCharNumber)
            {
                ArrayList resultList = new ArrayList(); 
                string tempStr = mOrigianlString; 
                int charNumber = subStringCharNumber; 
                int totalCount = 0; 
                string mSubStr = ""; 
                for (int i = 0; i < tempStr.Length; i++)
                {
                    string mChar = tempStr.Substring(i, 1); 
                    int byteCount = Encoding.Default.GetByteCount(mChar);
                    //关键点判断字符所占的字节数   
                    if (byteCount == 1) 
                    { 
                        totalCount++; 
                        mSubStr += mChar; 
                        if (totalCount == charNumber || i == tempStr.Length - 1) 
                        { 
                            resultList.Add(mSubStr); 
                            totalCount = 0; 
                            mSubStr = ""; 
                        } 
                    } else if (byteCount > 1) 
                    { 
                        totalCount += 2;
                        if (totalCount > charNumber) 
                        {
                            resultList.Add(mSubStr); 
                            if (i == tempStr.Length - 1) 
                            { 
                                mSubStr = mChar;
                                resultList.Add(mSubStr); 
                            } else { 
                                totalCount = 2; 
                                mSubStr = mChar; 
                            }
                        } else if (totalCount == charNumber) 
                        { 
                            mSubStr += mChar; 
                            resultList.Add(mSubStr);
                            totalCount = 0;
                            mSubStr = ""; 
                        } else if (i == tempStr.Length - 1) {
                            mSubStr += mChar; 
                            resultList.Add(mSubStr);
                        } else {
                            mSubStr += mChar; 
                        } 
                    }
                } return resultList;
            }
  • 相关阅读:
    归并排序
    希尔排序
    字符串操作
    引用
    直接插入排序
    变量赋值
    C#中关于公共类的使用
    关于SQL中Between语句查询日期的问题
    用户控件 与 重写控件 的区别
    什么是命名空间,为什么要使用命名空间?
  • 原文地址:https://www.cnblogs.com/shikyoh/p/3493803.html
Copyright © 2011-2022 走看看