我正在使用redis存储数据,数据是值的组合序列,一个sequece与分隔符:
和几个字符串值组合,例如:
value1:value2:value3
问题是这些值中可能包含 :
,我的第一个想法是将 :
转义为 ::
,然后将它们组合起来,我可以用单独的 :
将它们分开。
但这并不完美,因为 {'abc', 'aaa:', 'bbb'}
会被转义为 {'abc', 'aaa::', ' bbb'}
并合并为 abc:aaa:::bbb
,无法解析。这可能是一个愚蠢的问题,我被卡住了,你会如何解决这个问题,或者有什么更好的建议?
最佳答案
我建议在插入时将值括起来,同时使用特殊标识符分别插入字符串的开头和结尾,然后将它们组合起来。例如:
{'%abc%', '%aaa:%', '%bbb%'}
因此,每当您想再次拆分它们时,您可以使用分隔符拆分它们,然后按照您的惯例替换前置和附加值以获得原始字符串。
希望对您有所帮助!
关于字符串合并和拆分算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24450402/