做网站有些日子了,截取字符串时常会碰到。原来用一个截取字符串的方法,不过只能针对汉字,一碰到字母和数字就会出现截取的长度不一样!因为方法里面没有判断数字和英文字母的功能。时间一长,觉得是个问题,于是在网上找了很多种方法,个人觉得下面的比较好一点。无论是汉字,还是数字和字母,截取出来的字符串长度是一样的! 成都软件开发查阅
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text.RegularExpressions;
using System.Text;
/// <summary>
///Class1 的摘要说明
/// </summary>
public class Class1
{
public Class1()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
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;
for (int i = 0; i < stringChar.Length; i++)
{
if (regex.IsMatch((stringChar[i]).ToString()))
{
nLength += 2;
}
else
{
nLength = nLength + 1;
}
if (nLength <= length)
{
sb.Append(stringChar[i]);
}
else
{
break;
}
}
if (sb.ToString() != stringToSub)
{
sb.Append("...");
}
return sb.ToString();
}
}