获取字符串中指定位置开始的指定长度的字符串,支持汉字英文混合 汉字为2字节计数
2016-02-18 13:56
751 查看
/// <summary> /// 获取字符串中指定位置开始的指定长度的字符串,支持汉字英文混合 汉字为2字节计数 /// </summary> /// <param name="strSub">输入中英混合字符串</param> /// <param name="start">开始截取的起始位置</param> /// <param name="length">要截取的字符串长度</param> /// <returns></returns> private string GetSubString(string strSub, int start, int length) { string temp = strSub; int j = 0, k = 0, p = 0; CharEnumerator ce = temp.GetEnumerator(); while (ce.MoveNext()) { j += (ce.Current > 0 && ce.Current < 255) ? 1 : 2; if (j <= start) { p++; } else { if (j == GetLength(temp)) { temp = temp.Substring(p, k + 1); break; } if (j <= length + start) { k++; } else { temp = temp.Substring(p, k); break; } } } return temp; } /// <summary> /// 获取指定字符串长度,汉字以2字节计算 /// </summary> /// <param name="aOrgStr">要统计的字符串</param> /// <returns></returns> private int GetLength(String aOrgStr) { int intLen = aOrgStr.Length; int i; char[] chars = aOrgStr.ToCharArray(); for (i = 0; i < chars.Length; i++) { if (System.Convert.ToInt32(chars[i]) > 255) { intLen++; } } return intLen; }
相关文章推荐
- Dynamics AX Hostory
- Java线程(十):CAS
- 【python】编程语言入门经典100例--3
- Ubuntu安装gitlab
- [算法学习]求出链表中倒数第n个节点
- 加密算法介绍
- Centos YUM 升级PHP至5.3.3
- [Unity]Android(安卓)代码安卓APK时,使用系统安装器安装的[最正确]办法(不弹出选择打开的程序)
- 黑客魔术!如何黑掉一台根本不联网的电脑
- android进程间通信之Broadcast
- 为什么 volatile 关键字不能在 kernel 中使用(linux kernel 文档翻译)
- [算法学习]判断链表是否是环结构
- Java中通过UDP协议发送和接受数据
- linux 笔记
- Java中通过UDP协议发送和接受数据
- 1.基础部分
- 常用的抓包软件
- [算法学习]合并两个排序的链表
- 虚拟按键隐藏之后cocos游戏的适配问题
- Unity3d修炼之路:用Mesh绘制一个Cube