欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

截取指定长度的字符串,超过指定长度的加...,长度字符串

来源: javaer 分享于  点击 35827 次 点评:67

截取指定长度的字符串,超过指定长度的加...,长度字符串



        
/**//// <summary>
        
/// 按指定汉字的宽度截取字符串
        
/// </summary>
        
/// <param name="sourceStr">源字符串</param>
        
/// <param name="length">要截取汉字的个数</param>
        
/// <param name="isRounLastChar">当源串中存在半角和全角交替是,当结尾存在半个汉字时是否保留最后一位汉字</param>
        
/// <returns>截取后的字符串</returns>
        
/// <summary>
        
/// 超过指定汉字长度截取字符串并加上...
        
/// </summary>
        
/// <param name="str">要截取的字符串</param>
        
/// <param name="length">截取汉字长度</param>
        
/// <param name="isRounLastChar">当结尾存在半个汉字时是否保留</param>
        
/// <returns>截取后的结果</returns>

        public string CutString4(string str, int length, bool isRounLastChar)
        
...{
            
int n = length * 2;
            
string dStr = str;
            
string tempStr = string.Empty;
            System.Text.Encoding gbEncoding 
= System.Text.Encoding.GetEncoding("gb2312");
            
if (n < gbEncoding.GetBytes(dStr).Length)
            
...{    
                
int i = 0;
                
while (n != 0)
                
...{
                    
if (n == 1)
                    
...{
                        
if (isRounLastChar)
                        
...{
                            tempStr 
+= dStr[i];
                        }

                        
break;
                    }

                    
if (isCn(dStr[i]))
                    
...{
                        tempStr 
+= dStr[i];
                        n 
= n - 2;
                    }

                    
else
                    
...{
                        tempStr 
+= dStr[i];
                        n
--;
                    }

                    i
++;
                }

                tempStr
=tempStr+"...";
            }

            
else
            
...{
                tempStr
=dStr;
            }

            tempStr
=replace(tempString,"/");
            
return(tempStr);
        }

        
/**//// <summary>
        
/// 是否为汉字
        
/// </summary>
        
/// <param name="c">字符</param>
        
/// <returns>true/false</returns>

        public bool isCn(char c)
        
...{
            
byte[] bs = System.Text.Encoding.UTF8.GetBytes(c.ToString());
            
if (bs.Length == 3)
            
...{
                
return true;
            }

            
else
            
...{
                
return false;
            }

        }


   
 

相关文章

    暂无相关文章

用户点评