字符串编码器使用多个全局字符串替换

时间:2014-08-19 20:37:17

标签: java regex string perl encoding

我试图编写一个简单的编码方案。作为我之后的基本示例,让我们说有一个字符串1001.我想将0和1替换为

  

0 => 01

     

1 => 10

     

使1001编码为10010110。

如果我在像vim这样的编辑器中进行这样的替换,在另一个之后进行一次全局替换,我会做一个hack,用起始字符替换不涉及替换的其他字符(比如将0更改为x和1到y)。这样,第一次替换的产物就不会受到后续替换的影响。

  

1001 => YXXY

     

yxxy => y0101y(我不想替换第一次替换产生的1&#;)

     

y0101y => 10010110

     

在代码中推广到n个替换并执行此操作,似乎直接的方法是将字符串放在字符数组中并对每个单元格执行替换。然后每次替换都是相互独立的。

对于足够大的字符串,这可能很慢。我不知道的是,通用字符串替换方法或函数或apis是否更快,或者如果在引擎盖下它们也使用数组。如果没有特殊的魔力让他们在一次操作中替换一百万个字符,那么它并不重要。但如果它们更快,我怎样才能对n个案例进行一般性替换,同时保护结果不被进一步替换?有接受的算法吗?

然后这将扩展到不同大小的多个字符串正则表达式。如果我不得不替换aba,cdee等,似乎我无法以逻辑方式将目标字符串放入数据容器中。是否使这样的编码器超出了简单字符串替换的范围?

1 个答案:

答案 0 :(得分:0)

只要您不必将转码,只需输入数组/字符串/文件和输出数据。从输入读取,转码和写入输出。这样,所有替换都将在一次通过中完成。