我正在使用包含分隔字符串的字符流(unseekable):例如abc|def|ghijkd
分隔符|
。因此,当我解析一个令牌时,我会继续将流的字符添加到字符串中,直到找到一个管道,然后我开始一个新的字符串。
每次添加新角色时,我都不想复制正在构建的字符串。
构建先验未知长度字符串的标准做法是什么?
我现在正在做的是基本上分配一个给定大小的“块”(比如256个字符)并从那里复制流中的字符。当块已满时,我增加块大小(以初始块大小的步长),分配新块,将旧块复制到新位置,释放旧块,将字符添加到新块的末尾,等等,冲洗并重复。这对我来说似乎有点大锤。