有没有办法克隆 StringBuilder?我通过位逐个读取文件,然后将这些位转换为 ASCII 字符,接着收集这些字符到 String Builder 中,当我有例如 8 个字符时,就将该 String Builder 对象放入 Array List 中。然后我清除它并再次执行相同的操作。但是我无法创建新的 string builder,因为内存不够,而且我无法对那个 String Builder 进行更改,因为在 Array List 中也会更改。
所以我想我需要克隆那个 String Builder 并将其放入 Array List 中。只有一个问题,String Builder 没有 clone() 方法。那么我的备选方案是什么?
也许有人可以提供一些关于考虑性能和内存的好方法。
ArrayList characters = new ArrayList(); int counter = 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;
new StringBuilder(oldbuilder.toString())
是复制 StringBuilder 最简单的方法。由于您并没有解释您想要实现什么,所以您可能只需存储 StringBuilder 中的字符串。 - DNA