为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

c#按字节截取字符串

2017-08-31 5页 doc 17KB 23阅读

用户头像

is_729658

暂无简介

举报
c#按字节截取字符串c#按字节截取字符串 /// /// 截取指定字节长度的字符串 /// /// 原字符串 /// 截取字节长度 /// public static string CutByteString(string str, int len) { string result = string.Empty;// 最终返回的结果 if (string.IsNullOrEmpty(str)) { return result; } int byteLen = System.Text.Encoding.Default.Get...
c#按字节截取字符串
c#按字节截取字符串 /// /// 截取指定字节长度的字符串 /// /// 原字符串 /// 截取字节长度 /// public static string CutByteString(string str, int len) { string result = string.Empty;// 最终返回的结果 if (string.IsNullOrEmpty(str)) { return result; } int byteLen = System.Text.Encoding.Default.GetByteCount(str);// 单字节字符长度 int charLen = str.Length;// 把字符平等对待时的字符串长度 int byteCount = 0;// 记录读取进度 int pos = 0;// 记录截取位置 if (byteLen > len) { for (int i = 0; i < charLen; i++) { if (Convert.ToInt32(str.ToCharArray()[i]) > 255)// 按中文字符计算加2 { byteCount += 2; } else// 按英文字符计算加1 { byteCount += 1; } if (byteCount > len)// 超出时只记下上一个有效位置 { pos = i; break; } else if (byteCount == len)// 记下当前位置 { pos = i + 1; break; } } if (pos >= 0) { result = str.Substring(0, pos); } } else { result = str; } return result; } /// /// 截取指定字节长度的字符串 /// /// 原字符串 /// 起始位置 /// 截取字节长度 /// public static string CutByteString(string str, int startIndex, int len) { string result = string.Empty;// 最终返回的结果 if (string.IsNullOrEmpty(str)) { return result; } int byteLen = System.Text.Encoding.Default.GetByteCount(str);// 单字节字符长度 int charLen = str.Length;// 把字符平等对待时的字符串长度 if (startIndex == 0) { return CutByteString(str, len); } else if (startIndex >= byteLen) { return result; } else //startIndex < byteLen { int AllLen = startIndex + len; int byteCountStart = 0;// 记录读取进度 int byteCountEnd = 0;// 记录读取进度 int startpos = 0;// 记录截取位置 int endpos = 0;// 记录截取位置 for (int i = 0; i < charLen; i++) { if (Convert.ToInt32(str.ToCharArray()[i]) > 255)// 按中文字符计算加2 { byteCountStart += 2; } else// 按英文字符计算加1 { byteCountStart += 1; } if (byteCountStart > startIndex)// 超出时只记下上一个有效位置 { startpos = i; AllLen = startIndex + len - 1; break; } else if (byteCountStart == startIndex)// 记下当前位置 { startpos = i + 1; break; } } if (startIndex + len <= byteLen)//截取字符在总长以内 { for (int i = 0; i < charLen; i++) { if (Convert.ToInt32(str.ToCharArray()[i]) > 255)// 按中文字符计算加2 { byteCountEnd += 2; } else// 按英文字符计算加1 { byteCountEnd += 1; } if (byteCountEnd > AllLen)// 超出时只记下上一个有效位置 { endpos = i; break; } else if (byteCountEnd == AllLen)// 记下当前位置 { endpos = i + 1; break; } } endpos = endpos - startpos; } else if (startIndex + len > byteLen)//截取字符超出总长 { endpos = charLen - startpos; } if (endpos >= 0) { result = str.Substring(startpos, endpos); } } return result; }
/
本文档为【c#按字节截取字符串】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索