gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 14:37:26 26 4
gpt4 key购买 nike

我正在尝试编写一个简单的编码方案。作为我所追求的基本示例,假设有一个字符串 1001。我想将 0 和 1 替换为

0 => 01

1 => 10

so that 1001 gets encoded to 10010110.

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

1001 => yxxy

yxxy => y0101y (I don't want to replace the 1's that result from the first substitution)

y0101y => 10010110

Generalizing to n replacements and doing this in code, it seems like a straight forward method would be to put the string in a character array and do a substitution per cell. Then each substitution is independent of one another.

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

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

最佳答案

只要您不必就地进行转码,只需一个输入数组/字符串/文件和一个输出即可。从输入读取、转码并写入输出。这样,所有替换都可以一次性完成。

关于java - 使用多个全局字符串替换的字符串编码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25392533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com