两个截取字符串的实用方法(超过一定长度自动换行)

1/** <summary>
2        /// 截取字符串,不限制字符串长度
3        /// </summary>
4        /// <param name="str">待截取的字符串</param>
5        /// <param name="len">每行的长度,多于这个长度自动换行</param>
6        /// <returns></returns>
7        public string CutStr(string str,int len)
8        {    string s="";
9            
10            for(int i=0;i<str.Length ;i++)
11            {
12                int r= i% len;
13                int last =(str.Length/len)*len;
14                if (i!=0 && i<=last)
15                {
16                    
17                    if( r==0)
18                    {
19                        s+=str.Substring(i-len,len)+"<br>";
20                    }
21                        
22                }
23                else if (i>last)
24                {
25                    s+=str.Substring(i-1) ;
26                    break;
27                }
28                
29            }
30            
31            return s;
32            
33        }
34
35

在前台页面上有时候只需要显示一定长度的字符就可以了,例如在前台页面显示标题,而标题有20个字符,

      显示在<div></div>会很长影响页面的整体美观,这时就用下面方法,只截取前12个字符剩下的用“...”代替。

      前台页面调用如下:

      <div><%# StringTruncat(Eval("Title").ToString(), 12, "...")%></div>

      方法如下:

       ///   <summary>
       ///   将指定字符串按指定长度进行剪切,
       ///   </summary>
       ///   <param   name= "oldStr "> 需要截断的字符串 </param>
       ///   <param   name= "maxLength "> 字符串的最大长度 </param>
       ///   <param   name= "endWith "> 超过长度的后缀 </param>
       ///   <returns> 如果超过长度,返回截断后的新字符串加上后缀,否则,返回原字符串 </returns>
       public static string StringTruncat(string oldStr, int maxLength, string endWith)
       {
           if (string.IsNullOrEmpty(oldStr))
               //   throw   new   NullReferenceException( "原字符串不能为空 ");
               return oldStr + endWith;
           if (maxLength < 1)
               throw new Exception("返回的字符串长度必须大于[0] ");
           if (oldStr.Length > maxLength)
           {
               string strTmp = oldStr.Substring(0, maxLength);
               if (string.IsNullOrEmpty(endWith))
                   return strTmp;
               else
                   return strTmp + endWith;
           }
           return oldStr;
       }