String 字符串合并和拆分算法
我使用redis存储数据,数据是组合的值序列,序列与分隔符:和几个字符串值组合,例如:String 字符串合并和拆分算法,string,algorithm,redis,String,Algorithm,Redis,我使用redis存储数据,数据是组合的值序列,序列与分隔符:和几个字符串值组合,例如: value1:value2:value3 问题是这些值可能包含:在它们中,我的第一个想法是转义:在值中转义为::,然后组合它们,我可以用一个单独的值拆分它们: 但这并不完美,因为{'abc','aaa:','bbb'}将转义到{'abc','aaa:','bbb}并合并到abc:aaa:::bbb,这是无法解决的。这可能是一个愚蠢的问题,我被卡住了,你会如何解决这个问题,或者有更好的建议吗?我建议在每个字符
value1:value2:value3
问题是这些值可能包含:在它们中,我的第一个想法是转义:在值中转义为::,然后组合它们,我可以用一个单独的值拆分它们:
但这并不完美,因为{'abc','aaa:','bbb'}将转义到{'abc','aaa:','bbb}并合并到abc:aaa:::bbb,这是无法解决的。这可能是一个愚蠢的问题,我被卡住了,你会如何解决这个问题,或者有更好的建议吗?我建议在每个字符串的开头和结尾插入一个特殊的标识符,然后将它们组合在一起。e、 g:
{'%abc%', '%aaa:%', '%bbb%'}
因此,每当您想要再次拆分它们时,您可以使用分隔符拆分它们,然后按照约定替换前缀和附加值以获得原始字符串
希望有帮助 使用另一个不太可能出现在值中的分隔符。或者使用列表。序列是列表中的一项,如果将每个序列存储为列表,则列表太多@Sergiotulentsev您的拆分方法是否支持正则表达式?我解决了它,我首先将:in值转义为\:并将它们组合起来,然后将序列按?拆分,然后将子字符串中的:unescape \:转义为: