博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

dnt截取字符串

Posted on 2007-08-29 22:27  hnboy  阅读(365)  评论(1编辑  收藏  举报
        /// <summary>
        
/// 字符串如果操过指定长度则将超出的部分用指定字符串代替
        
/// </summary>
        
/// <param name="p_SrcString">要检查的字符串</param>
        
/// <param name="p_Length">指定长度</param>
        
/// <param name="p_TailString">用于替换的字符串</param>
        
/// <returns>截取后的字符串</returns>

        public static string GetSubString(string p_SrcString, int p_Length, string p_TailString) 
        

            
string myResult = p_SrcString; 

            
if (p_Length >= 0
            

                
byte[] bsSrcString = Encoding.Default.GetBytes(p_SrcString); 

                
if (bsSrcString.Length > p_Length) 
                

                    
int nRealLength = p_Length; 
                    
int[] anResultFlag = new int[p_Length]; 
                    
byte[] bsResult = null

                    
int nFlag = 0
                    
for (int i = 0; i < p_Length; i++
                    


                        
if (bsSrcString[i] > 127
                        

                            nFlag
++
                            
if (nFlag == 3
                            

                                nFlag 
= 1
                            }
 
                        }
 
                        
else 
                        

                            nFlag 
= 0
                        }
 

                        anResultFlag[i] 
= nFlag; 
                    }
 

                    
if ((bsSrcString[p_Length - 1> 127&& (anResultFlag[p_Length - 1== 1)) 
                    

                        nRealLength 
= p_Length + 1
                    }
 

                    bsResult 
= new byte[nRealLength]; 

                    Array.Copy(bsSrcString, bsResult, nRealLength); 

                    myResult 
= Encoding.Default.GetString(bsResult); 

                    myResult 
= myResult + p_TailString; 
                }
 

            }
 

            
return myResult; 
        }