如何用最高效的方法,从一组以"\\"为分隔符的string中提取字符串
目标string如下
string data = "abcde\\earda\\ppp\\xxxxx"
这个需求是这样的,就是把形如这样的字符串,插入到一个
Dictionary里面去
protected Dictionary<int, string> _values
之前的写法是这样的:
char[] sep = new char[] { '\\' };
values = data.Split(sep);
for (int i = 0; i < values.Length; ++i)
{
_values.Add(i, value);
}
现在测试下来用这种方法去做data.split的方式性能比较差,请教有没有什么可以提升性能的方法。
相关推荐
按分隔符提取字符串组
按分隔符提取字符串组 按分隔符提取字符串组 按分隔符提取字符串组
详解C++ string常用截取字符串方法
string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求: find(string strSub, npos); find_last_of(string strSub, npos); 其中strSub是需要寻找的子字符串,npos为查找起始位置。找到返回子字符串首次出现的位置,否则返回-1; 注: (1)find_last_of的npos为从末尾开始寻找的位置。 (2)下文中用到的strsub(npos,size)函数,其中npos为开始位置,size为截取大小 例1:直接查找字符串中是否具有某个字符串(返回”2″) std::string strPath = E:\\
详解C++的String类的字符串分割实现
详解C++的String类的字符串分割实现 功能需求,输入一个字符串“1-2-3”切割出“1”、“2”、“3”。在Java下直接用String的split函数就可以了。c++下String没有直接提供这个函数,需要自己写。 网上给出的解决方案是这里的三种方法。但我是通过JNI访问的,在里面用这些vector可能不中,自己封装了个,仅供参考: String recogScop = 01-02-03; cout<<recogScop<<endl; int size = recogScop.size(); int pos = 0; string result[20] ; for(int i=
sql带分隔符的截取字符串示例
代码如下:eclare @str nvarchar(50);set @str=’462,464,2′;select @str as ‘字符串’select len(@str) as ‘字符长度’select charindex(‘,’,@str,1) as ‘第一个逗号的索引值’select LEFT(@str,charindex(‘,’,@str,1)-1) as ‘第一个值’select SUBSTRING(@str,charindex(‘,’,@str,1)+1,len(@str)) as ‘从第一逗号开始截取出后面的字符串’select LEFT(SUBSTRING(@str,char
c++字符串分割的方法
C++ 中经常需要对字符串按照分隔符进行分割以获得子串序列,子串的顺序与其在原字符串中出现的顺序一致。一般有两种需求场景: (1)给定一个分隔符(单个字符或子串)分割字符串; (2)给定一个或多个分隔符(单个字符),分割字符串。 当给定的分隔符不在原字符串中,则原字符串不被分割,返回单个元素为原字符串的 vector。 注意,本文实现时,如果被分割后的子串为空串,则不计入最终的子串序列。比如原字符串是”a,b”,分隔符为”,”,那么分割后的子串序列为 [“a”, “b”],而不是 [“a”, “”, “b”]。 1.单个分隔符(单个字符或子串)分割字符串 #include <iostre


