asp.net截取字符串方法
public partial class SubString : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.lblSub.Text = GetFirstString("中国人chinese", 7);
this.lblSub2.Text = GetFirstString("afafaf你好", 7);
}
public string getStr(string strInput, int intLen)
{
strInput = strInput.Trim();
byte[] myByte = System.Text.Encoding.Default.GetBytes(strInput);
Response.Write("getStr Function is::"+myByte.Length.ToString());
if (myByte.Length > intLen)
{
//截取操作
string resultStr = "";
for (int i = 0; i < strInput.Length; i++)
{
byte[] tempByte = System.Text.Encoding.Default.GetBytes(resultStr);
if (tempByte.Length < intLen)
{
resultStr += strInput.Substring(i, 1);
}
else
{
break;
}
}
return resultStr + "...";
}
else
{
return strInput;
}
}
public string cutString(string strInput, int intLen)
{
strInput = strInput.Trim();
byte[] myByte = System.Text.Encoding.Default.GetBytes(strInput);
Response.Write("cutString Function is::" + myByte.Length.ToString());
if (myByte.Length > intLen)
{
//截取操作
string resultStr = "";
for (int i = 0; i < strInput.Length; i++)
{
byte[] tempByte = System.Text.Encoding.Default.GetBytes(resultStr);
if (tempByte.Length < intLen)
{
resultStr += strInput.Substring(i, 1);
}
else
{
break;
}
}
return resultStr + "...";
}
else
{
return strInput;
}
}
public static string Fix(string s, int len)
{
string result = ""; //最终返回的结果
int byteLen = System.Text.Encoding.Default.GetByteCount(s); //单字节字符长度
int charLen = s.Length; //把字符平等对待时的字符串长度
int byteCount = 0; //记录读取进度{中文按两单位计算}
int pos = 0; //记录截取位置{中文按两单位计算}
if (byteLen > len)
{
for (int i = 0; i < charLen; i++)
{
if (Convert.ToInt32(s.ToCharArray()[i]) > 255) //遇中文字符计数加2
byteCount += 2;
else //按英文字符计算加1
byteCount += 1;
if (byteCount >= len) //到达指定长度时,记录指针位置并停止
{
pos = i;
break;
}
}
result = s.Substring(0, pos)+"...";
}
else
result = s;
return result;
}
#region 截短字串的函数,分区中英文
/// <summary>
/// 截短字串的函数
/// </summary>
/// <param name="mText">要加工的字串</param>
/// <param name="byteCount">长度</param>
/// <returns>被加工过的字串</returns>
public string Left(string mText, int byteCount)
{
if (byteCount < 1) return mText;
if (System.Text.Encoding.Default.GetByteCount(mText) <= byteCount)
{
return mText;
}
else
{
byte[] txtBytes = System.Text.Encoding.Default.GetBytes(mText);
byte[] newBytes = new byte[byteCount - 4];
for (int i = 0; i < byteCount - 4; i++)
{
newBytes[i] = txtBytes[i];
}
return System.Text.Encoding.Default.GetString(newBytes) + "...";
}
}
#endregion
public static string GetFirstString(string stringToSub, int length)
{
Regex regex = new Regex("[\u4e00-\u9fa5]+", RegexOptions.Compiled);
char[] stringChar = stringToSub.ToCharArray();
StringBuilder sb = new StringBuilder();
int nLength = 0;
bool isCut = false;
for (int i = 0; i < stringChar.Length; i++)
{
if (regex.IsMatch((stringChar[i]).ToString()))
{
sb.Append(stringChar[i]);
nLength += 2;
}
else
{
sb.Append(stringChar[i]);
nLength = nLength + 1;
}
if (nLength > length)
{
isCut = true;
break;
}
}
if (isCut)
return sb.ToString() + "...";
else
return sb.ToString();
}
}
.Net 技术探讨群 4151320
欢迎大家加入!!!
转载于:https://www.cnblogs.com/happyday56/archive/2008/03/12/1101627.html
asp.net截取字符串方法相关推荐
- JAVA截取字符串方法
//截取字符串方法 public static void main(String[] args) { String str="QW/E1/2/45"; //寻找最后一个" ...
- php str pa,php截取字符串方法有哪些
php截取字符串方法有:1.使用substr函数截取字符串:2.使用mb_substr函数截取字符串:3.使用自定义的"function mysubstr($str, $start, $le ...
- C++ string常用截取字符串方法
string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求: find(string strSub, npos); find_last_of(string strSub, npos) ...
- c++语言截取字符串,详解C++ string常用截取字符串方法
string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求: find(string strSub, npos); find_last_of(string strSub, npos) ...
- vue 截取字符串方法
vue 截取字符串方法 shutStr(){const str = 'abcdef';str = str.slice(0); //返回整个字符串 abcdefstr = str.substring(0 ...
- String 截取字符串方法——subString()
String 截取字符串方法subString() String可以使用substring方法进行截取字符串有两种,参数可输入一个或者两个: 单参数:public String substring(i ...
- web前端js基础之js的几种“截取字符串”方法
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
- c语言中截取字符串 sub,详解C++ string常用截取字符串方法
string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求: find(string strSub, npos); find_last_of(string strSub, npos) ...
- shell截取字符串方法
shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ...
最新文章
- 为什么要叫python-为什么叫Python
- 大学python用什么教材-数据结构 Python语言描述 大学教材
- php gd 行间距设置,PHP动态修改GD库扩展问题
- 今晚直播 | ICML 2021论文解读:基于Cox-MLP模型的二阶段共形预测
- 存储过程能用if not exist_C++核心准则T.48:如果不能用概念,用enable_if
- 如何开启jvm日志_做了10个小实验:搞懂了JVM三大参数类型
- 大数据和云计算涉及的技术_云计算涉及的风险
- python没有错误但是不显示结果_python运行不报错又无任何结果输出
- solr带carrot2插件可以用配置好的solrconfig.xml
- 2020 — 只争朝夕,不负韶华
- 全栈必备 存储基础
- VMware虚拟机无法识别U盘解决方案
- java报错Error attempting to get column ‘XXX’ from result set. Cause: java.sql.怎么解决
- GIS地图基础知识--入门教程
- Aspose.3D使用教程:使用 Java 将 FBX 转换为 RVM 或 RVM 转换为 FBX 文件
- 黑客软件大众化 【爆吧机的出现】杨丞琳贴吧遭网友攻陷
- 一个C++程序员的学习经历
- 【物联网开发】正点原子STM32战舰v3+机智云AIoT+APP控制
- web课程设计网页规划与设计:HTML+CSS题材——我的家乡-沧州 6页 带报告
- 数据库中decimal
热门文章
- 什么是数据的表分区(文章附上Server 2005分区实施方案)
- (61)FPGA面试题-使用Verilog语言编写异步复位同步释放代码
- (12)Verilog HDL变量:reg型
- 1010.gtest测试环境搭建
- js html转为实体,字符串js编码转换成实体html编码的方法(防范XSS攻击)
- java split函数_Java split函数
- 栈和队列之栈的定义和实现
- 网络协议栈深入分析(一)--与sk_buff有关的几个重要的数据结构
- Linux 视频设备驱动V4L2最常用的控制命令使用说明(1.02)
- ROS 教程之 navigation : 用 move_base 控制自己的机器人(2)