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;
            }
  • 相关阅读:
    MylSAM引擎的特点及场景使用
    innodb的特性及常用场景
    标准库functools.wraps的使用方法
    requests基本使用
    linux常用指令
    爬操插件json作指示图文详解
    Django form表单
    python 装饰器
    Django 的路由分配系统
    Django 的ORM
  • 原文地址:https://www.cnblogs.com/shikyoh/p/3493803.html
Copyright © 2011-2022 走看看