截取字符串的两个方法
来源:互联网 发布:mysql多主多从 编辑:程序博客网 时间:2024/04/30 21:49
public string GetContentSummary(string content, int length, bool StripHTML)
{
if (string.IsNullOrEmpty(content) || length == 0)
return "";
if (StripHTML)
{
System.Text.RegularExpressions.Regex re = new System.Text.RegularExpressions.Regex("<[^>]*>");
content = re.Replace(content, "");
content = content.Replace(" ", "").Replace(" ", "").Replace(" ", "");
if (content.Length <= length)
return content;
else
return content.Substring(0, length) + "...";
}
else
{
if (content.Length <= length)
return content;
int pos = 0, npos = 0, size = 0;
bool firststop = false, notr = false, noli = false;
System.Text.StringBuilder sb = new System.Text.StringBuilder();
while (true)
{
if (pos >= content.Length)
break;
string cur = content.Substring(pos, 1);
if (cur == "<")
{
string next = content.Substring(pos + 1, 3).ToLower();
if (next.IndexOf("p") == 0 && next.IndexOf("pre") != 0)
{
npos = content.IndexOf(">", pos) + 1;
}
else if (next.IndexOf("/p") == 0 && next.IndexOf("/pr") != 0)
{
npos = content.IndexOf(">", pos) + 1;
if (size < length)
sb.Append("<br />");
}
else if (next.IndexOf("br") == 0)
{
npos = content.IndexOf(">", pos) + 1;
if (size < length)
sb.Append("<br />");
}
else if (next.IndexOf("img") == 0)
{
npos = content.IndexOf(">", pos) + 1;
if (size < length)
{
sb.Append(content.Substring(pos, npos - pos));
size += npos - pos + 1;
}
}
else if (next.IndexOf("li") == 0 || next.IndexOf("/li") == 0)
{
npos = content.IndexOf(">", pos) + 1;
if (size < length)
{
sb.Append(content.Substring(pos, npos - pos));
}
else
{
if (!noli && next.IndexOf("/li") == 0)
{
sb.Append(content.Substring(pos, npos - pos));
noli = true;
}
}
}
else if (next.IndexOf("tr") == 0 || next.IndexOf("/tr") == 0)
{
npos = content.IndexOf(">", pos) + 1;
if (size < length)
{
sb.Append(content.Substring(pos, npos - pos));
}
else
{
if (!notr && next.IndexOf("/tr") == 0)
{
sb.Append(content.Substring(pos, npos - pos));
notr = true;
}
}
}
else if (next.IndexOf("td") == 0 || next.IndexOf("/td") == 0)
{
npos = content.IndexOf(">", pos) + 1;
if (size < length)
{
sb.Append(content.Substring(pos, npos - pos));
}
else
{
if (!notr)
{
sb.Append(content.Substring(pos, npos - pos));
}
}
}
else
{
npos = content.IndexOf(">", pos) + 1;
sb.Append(content.Substring(pos, npos - pos));
}
if (npos <= pos)
npos = pos + 1;
pos = npos;
}
else
{
if (size < length)
{
sb.Append(cur);
size++;
}
else
{
if (!firststop)
{
sb.Append("...");
firststop = true;
}
}
pos++;
}
}
return sb.ToString();
}
}
protected string CartStringn(int num1, string str)
{
int num = num1;
foreach (char s in str.ToLower())
{
if (s == 'a' || s == 'b' || s == 'c' || s == 'd' || s == 'e' || s == 'f' || s == 'g' || s == 'h' || s == 'i' || s == 'j' || s == 'k' || s == 'l' || s == 'm' ||
s == 'n' || s == 'o' || s == 'p' || s == 'q' || s == 'r' || s == 's' || s == 't' || s == 'u' || s == 'v' || s == 'w' || s == 'x' || s == 'y' || s == 'z')
num++;
}
if (num > 0)
{
if (str.Length >= num)
return str.Substring(0, num) + "...";
else
return str;
}
else
return str;
}
- 截取字符串的两个方法
- 两个截取字符串的实用方法
- Javascript截取字符串的两个方法
- Javascript截取字符串的两个方法
- javascript截取字符串的两个方法
- 两个截取字符串的实用方法
- Javascript截取字符串的两个方法[载]
- Javascript截取字符串的两个方法
- ASP.NET两个截取字符串的实用方法技巧
- ASP.NET技巧:两个截取字符串的实用方法
- SQL 截取字符串,中文算两个字符的方法
- ASP.NET两个截取字符串的方法分享
- 截取字符串的方法
- CString截取两个字符串之间的字符串
- 截取两个String字符串中间的字符串
- JS正则截取两个字符串之间及字符串前后内容的方法
- 截取两个字符串中间的值
- java截取两个字符之间的字符串
- 修改qte启动时默认背景颜色
- JS提交表单,报“对象不支持此属性”错误
- X86体系结构对并行端口的操作
- with admin option、with grant option区别
- 学习简单工厂应用的理解。
- 截取字符串的两个方法
- 解决PHP用户登陆后无法退出问题的办法
- 组建一个软件开发团队
- 面向对象基本概念
- 引用 c# Invoke和BeginInvoke 区别
- sqlserver2000-2005数据库表复制及如何新增自增主键列
- 时过境迁
- 提取图片 及连接放到flash
- 倒序输出