¿Hay alguna forma de clonar StringBuilder? Estoy leyendo archivos por bits y luego convierto estos bits en caracteres ASCII después de que recojo los caracteres en el generador de cadenas y cuando tengo, por ejemplo, 8 caracteres, pongo el objeto del generador de cadenas en la lista de arreglos. Luego lo limpio y nuevamente hago lo mismo. Sin embargo, no puedo crear un generador de cadenas nuevo debido a la memoria y no puedo hacer cambios en ese constructor de cadenas porque en la lista de arreglos también cambia ese constructor.Cómo clonar() StringBuilder
Así que creo que tengo que clonar ese String Builder y ponerlo en la lista de arreglos. Solo hay un problema. El Generador de cadenas no tiene clon(). Entonces, ¿cuáles son mis alternativas?
Tal vez alguien podría dar algunas ideas de lo que es una buena manera de hacerlo teniendo en cuenta el rendimiento y la memoria.
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;
"No puedo crear nuevo generador de cadenas debido a la memoria" - un StringBuilder clonado utilizará una cantidad similar de memoria, así que ¿cómo lo haría esto te ayuda? – DNA
'new StringBuilder (oldbuilder.toString())' es la forma más sencilla de copiar un StringBuilder. En realidad, no ha explicado qué está tratando de lograr, por lo que puede almacenar el String de StringBuilder en su lugar. – DNA
Yap entendió que no ayudará de todos modos. Así que estoy sin opciones debido a este characters.add (nuevo StringBuilder (sb)); da excepción java outOffMemory – Streetboy