asp.net截取字符串方法

原创 2007年09月12日 18:20:00

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();
        }
    } 

C#截取字符串的几种方式

1.根据单个分隔字符用Split截取 例如 string st="GT123_1"; string[] sArray=st.Split('_'); 即可得到sArray[0]="GT123",...
  • fengqingtao2008
  • fengqingtao2008
  • 2015年04月16日 23:16
  • 6177

转 -- linux中shell截取字符串方法总结

参考一下。 原址如下: http://www.111cn.net/sys/linux/43822.htm linux中shell截取字符串方法总结 shell中截取...
  • edwzhang
  • edwzhang
  • 2016年11月25日 11:58
  • 7593

C#几种截取字符串的方法(split 、Substring、Replace、remove)

C#截图字符串常用的方法有 split 、Substring、Replace、remove等。 split的使用:   1. Split( Char ())      返回的字符串数组包含此实例...
  • wangshubo1989
  • wangshubo1989
  • 2015年07月16日 07:35
  • 24124

asp.net C#中对Web.Config字符串加密与解密的方法

【案例引用】 例如 XML/HTML code ? 1 2 3 connectionStrings>      ...
  • English0523
  • English0523
  • 2016年07月28日 14:55
  • 2951

ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法

ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法 -   在ASP.NET开发的网站根目录,有一个名为web.config的文件,顾名思义,这...
  • luckysiesteven
  • luckysiesteven
  • 2013年10月09日 21:12
  • 1253

asp.net中使用JQuery的join()传递一个字符串数组到控制器并在后台解析该数组的方法

问题描述: 在上图复选框checkbox中选中多个要删除的专业名称,当点击删除按钮时把选中的专业删除。 要求使用 ajax 实现异步地删除,减少刷新网页的次数。asp.net mvc里前端与后...
  • qq_34332010
  • qq_34332010
  • 2016年11月18日 12:45
  • 261

ASP.NET去除HTML标签并截取指定长度字符串

当我们使用编辑器存储内容时,保存到数据库的内容可含有html标签,如果要将其查询出来展示在页面上时有时会用到字符串截取,这时我们应该先对其进行html解码,再去html标签,最后再截取指定长度字符串。...
  • yiyelanxin
  • yiyelanxin
  • 2017年05月31日 10:56
  • 360

ASP.net从入门到精通]-截取字符串

  • 2011年12月16日 11:52
  • 3.65MB
  • 下载

Web前台传对象字符串到后台并让后台反序列化对象字符串的方法(ASP.NET)

Web前台传对象字符串到后台并让后台反序列化对象字符串的方法(ASP.NET)    从零开始做了两个月多一点的.NET开发,期间经常遇到需要从Web前台传数据给后台处理的情况。比如下面(用了j...
  • u010010102
  • u010010102
  • 2013年07月19日 20:41
  • 1321

Web前台传对象字符串到后台并让后台反序列化对象字符串的方法(ASP.NET) json对象和字符串的转换

从零开始做了两个月多一点的.NET开发,期间经常遇到需要从Web前台传数据给后台处理的情况。比如下面(用了jQuery的Ajax Post),这里为了演示方便没有对参数进行encodeURICompo...
  • GoodShot
  • GoodShot
  • 2014年09月13日 06:09
  • 5907
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net截取字符串方法
举报原因:
原因补充:

(最多只允许输入30个字)