posts - 311, comments - 0, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
//-----------------------------------------------------------------------
    void StringUtil::splitNice(vector< String >::type &ret, const String& s, const char delims/*= '|'*/const char ignores/*  = "^"*/, String null_subst/* = ""*/)
    {
        ret.clear();
        String str 
= s;
        typedef String::size_type String_size;
        String_size i 
= 0;
        String_size j 
= 0;

        
while (i <= str.size()){

            String_size j 
= i;

            
// get all the char
            while (j < str.size() && str[j] != delims )
            {    
                
if(str[j] & 0x80++j;
                
if(str[j] == ignores) 
                {                    
                    str 
= str.substr(0, j) + str.substr(j + 1, (str.length() - j));
                }
                
++j;
            }

            
if (i != j)
            {
                ret.push_back(str.substr(i, j
-i));
                i 
= j + 1;
            }
            
else
            {
                ret.push_back(null_subst);
                i
++;
            }        
        }
    }

支持中文中字符和分割符一样的分割函数
支持"弢"和"|"线类似