java中的字符串解析和解码

时间:2013-04-13 03:47:43

标签: java string

我们需要解码长流数据流。

每条数据都是一个包含编码序列的长字符串,由分隔符分隔。 每个序列都由编码密钥组成。

编码的“密钥”与其字符等价物之间的映射是分开维护的。 这个想法是在地图中查找每个键;并替换为相应的字母。

实现这一目标的最有效方法是什么。

是一个子字符串并替换正确处理流的方式吗? 或者我们有更高绩效的替代方案?

2 个答案:

答案 0 :(得分:1)

由于这看起来像是家庭作业,我会给你一个大致的想法,让你自己完成实现。

最合理的方法是使用StringBuilder来构建输出。通过令牌解析输入令牌。对于每个令牌,在地图中查找它的键并将值附加到StringBuilder。完成后,输出字符串生成器的内容。

注意:如果您的字符串非常长(许多MB或GB),只需直接写入输出流。

答案 1 :(得分:0)

长串中的许多重复替换将是非常低效的。正如你所说输入是“流动的”,所以你不应该一次读取所有输入广告处理,而应该通过较小的块读取和处理,我认为缓冲区是缓冲区。

使用StringTokenizer处理传入数据,以分隔符进行拆分。

对于每个传入令牌,执行替换,如果可能,直接将其写入输出流,或者附加到StringBuilder

相关问题