8

免责声明:这是一个理论问题,目的是增加我的理解。我知道我总是可以使用 JSON 库之类的工具来解决问题。

假设我想创建一个逗号分隔的值列表,这些值本身可能包含逗号。这些逗号需要首先转义。假设我.用作转义字符,则["a", "b,c"]变为a,b.,c.

但是,如果其中一个值最初包含一个.,序列,那么我们需要在转义逗号之前转义这些值。就这样[ "a", "b.,c" ]变成了a,b..,c

但是,如果其中一个值最初包含一个..,序列,那么我们需要在转义逗号之前转义这些值。就这样[ "a", "b..,c" ]变成了a,b...,c

但是,如果其中一个值最初包含一个...,序列,那么我们需要在转义逗号之前转义这些值。就这样[ "a", "b...,c" ]变成了a,b....,c

ETC...

解码过程必须执行反向递归。

但是,我怀疑我是否太难了,并且有一种更简单的方法。有没有更简单的方法?

4

1 回答 1

5

感谢@mkbeckish 的评论,我意识到该算法可以实现为:

// encoding
text.replace(escape, escape + escape);
text.replace(delim , escape + delim);

// decoding
text.replace(escape + delim , delim);
text.replace(escape + escape, escape);

示例实现。

很愚蠢,我自己没有意识到这一点..

于 2013-02-08T21:38:01.263 回答