java中的字符串解析与解码
我们需要对长数据流进行解码 每个数据段都是一个由编码序列组成的长字符串,由分隔符分隔。 每个序列都是由编码密钥组成的 编码的“键”和它们的字符等价物之间的映射是单独维护的。 想法是在地图上查找每个键;并替换为相应的字母表 实现这一目标的最有效方式是什么 子字符串和替换是否是这样处理流的正确方法?java中的字符串解析与解码,java,string,Java,String,我们需要对长数据流进行解码 每个数据段都是一个由编码序列组成的长字符串,由分隔符分隔。 每个序列都是由编码密钥组成的 编码的“键”和它们的字符等价物之间的映射是单独维护的。 想法是在地图上查找每个键;并替换为相应的字母表 实现这一目标的最有效方式是什么 子字符串和替换是否是这样处理流的正确方法? 或者我们有更高性能的替代方案吗?因为这看起来像是一个家庭作业,所以我会给你一个大概的想法,让你自己制定实现方案 最合理的方法是使用StringBuilder,在其中构建输出。逐个令牌解析输入令牌。对于每
或者我们有更高性能的替代方案吗?因为这看起来像是一个家庭作业,所以我会给你一个大概的想法,让你自己制定实现方案 最合理的方法是使用
StringBuilder
,在其中构建输出。逐个令牌解析输入令牌。对于每个标记,在地图中查找它的键,并将值附加到StringBuilder
。完成后,输出字符串生成器的内容
注意:如果字符串很长(很多MB或GB),只需直接写入输出流。长字符串中的多次重复替换将非常低效。正如你所说的,输入是“流动的”,所以你不应该一次读取所有的输入ad处理,你应该按更小的块进行读取和处理,我想是一个缓冲区一个缓冲区 使用
StringTokenizer
按分隔符拆分来处理传入数据
对于每个传入的令牌,执行替换,如果可能的话,将其直接写入输出流,或者附加到
StringBuilder
,因为每次修改字符串时都会生成一个新字符串,如果要执行许多小字符串操作,请使用StringBuilder
或char[]
来提高性能。映射应该很好,映射对于get
来说是非常高的性能。直接写入输出流意味着什么?stringbuilder输出怎么能这样写?