如何克隆()StringBuilder

街头男孩:

有一些方法可以克隆StringBuilder吗?我正在按位读取文件,然后将这些位收集为字符串生成器,然后将这些位转换为ASCII字符,例如,当我有8个字符时,我将该字符串生成器对象放入数组列表。然后,我将其清洁并再次执行相同操作。但是,由于内存原因,我无法创建新的字符串生成器,并且无法对该字符串生成器进行更改,因为在数组列表中,该生成器也会更改。

所以我想我必须克隆该String Builder并将其放入“数组列表”。字符串生成器没有clone()只是一个问题。那我有什么选择呢?

也许有人可以提出一些想法,考虑到性能和内存,这是什么好方法。

ArrayList字符= new ArrayList(); int计数器= 0;

StringBuilder sb = new StringBuilder(blockSize-1);

while (mbb.hasRemaining()) {   

char charAscii = (char)mbb.get();


    counter++;
    charCounter++;

     if (counter == blockSize){

        sb.append(charAscii);
        characters.add(sb);//sb.toString()
        sb.delete(0, sb.length());
        counter = 0;

    }else{

        sb.append(charAscii);

     }

 if(!mbb.hasRemaining()){
    characters.add(sb);
}



}
fc.close();
return characters;
路易斯·瓦瑟曼:

如果您没有创建新的内存StringBuilder,那么您就没有创建新的内存StringBuilder,克隆不会改变它。复制a的唯一真实方法StringBuildernew StringBuilder(myBuilder)或类似的东西。

如果您要获取OutOfMemoryException,则需要获取更多的内存,或者找到其他减少内存消耗的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章