关于asp.net的字符串截取
2011-01-25 16:11
351 查看
字符串截取是我们通常都会用到的,在前台显示的时候可能因为格式关系,需要控制字符串的显示长度。本身字符串的截取方法substring()在实际的使用中不是很方便。因为对于中文字符和西文字符来说,所占取的字节数是不同的,在substring()这里却是一样的对待,所以在实际运用中就会无法克服不同字符带来的长度不等的问题了。
在网上找了不少方法,多少都有问题,所以自己写了这个方法,不敢说完全没问题,至少到目前本人使用没有问题。
/// <summary>
/// 截取字符串长度的方法,可判断中英文字符
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string stringformat(string str)
{
string temp = string.Empty;
if (System.Text.Encoding.Default.GetByteCount(str) <= 14)//如果长度比需要的长度n小,返回原字符串,14表示7个中文字符
{
return str;
}
else //如果长度超过则截取,至于截取的长度可以自己设置,我这里写死了
{
int number = 0;
string st = string.Empty;
while (number < 14)
{
st = str.Substring(0, 1);
temp += st;
str = str.Substring(1, str.Length - 1);
if (System.Text.Encoding.Default.GetByteCount(st) > 1) //判断字符所占字节数
{
number += 2;
}
else
{
number++;
}
}
return (temp + "...");
}
}
在网上找了不少方法,多少都有问题,所以自己写了这个方法,不敢说完全没问题,至少到目前本人使用没有问题。
/// <summary>
/// 截取字符串长度的方法,可判断中英文字符
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string stringformat(string str)
{
string temp = string.Empty;
if (System.Text.Encoding.Default.GetByteCount(str) <= 14)//如果长度比需要的长度n小,返回原字符串,14表示7个中文字符
{
return str;
}
else //如果长度超过则截取,至于截取的长度可以自己设置,我这里写死了
{
int number = 0;
string st = string.Empty;
while (number < 14)
{
st = str.Substring(0, 1);
temp += st;
str = str.Substring(1, str.Length - 1);
if (System.Text.Encoding.Default.GetByteCount(st) > 1) //判断字符所占字节数
{
number += 2;
}
else
{
number++;
}
}
return (temp + "...");
}
}
相关文章推荐
- asp.net 关于字符串内范围截取的一点方法总结
- asp.net 关于字符串内范围截取的一点方法总结
- asp.net 关于字符串内范围截取的一点方法总结
- [转]asp.net区分中英文字符串截取
- asp.net 将指定字符串按指定长度进行截取并用其他字符串替换方法
- ASP.NET中Grid的字符串截取简便写法
- Asp.Net截取两个相同字符之间的字符串内容(示例)
- ASP.NET两个截取字符串的方法分享
- ASP.NET两个截取字符串的实用方法技巧
- ASP.NET两个截取字符串的方法分享
- asp.net 字符串字段值的截取
- asp.net 截取带有html标签的字符串(先过滤html,再截取)的方法
- 【ASP.NET】在gridView中解决截取字符串问题
- Asp.net Eval 截取字符串
- ASP.NET 下关于ACCESS连接字符串的配置
- ASP.NET - 截取固定长度字符串显示在页面,多余部分显示为省略号
- Bind("入库日期", "{0:yyyy-MM-dd}") 关于asp.net格式化数据库日期字符串
- asp.net截取指定字符后面的字符串
- Asp.Net截取字符串输出