Esistono modi per clonare StringBuilder? Sto leggendo i file per bit e poi li converto in caratteri ASCII, dopo di che raccolgo caratteri nel builder String e quando ho per esempio 8 caratteri, metto l'oggetto String Builder nella lista di array. Quindi lo pulisco e di nuovo faccio lo stesso. Tuttavia, non posso creare un nuovo generatore di stringhe a causa della memoria e non posso apportare modifiche a quel generatore di stringhe perché nella lista di array anche quel costruttore cambia.Come clonare() StringBuilder
Quindi penso di dover clonare quel generatore di stringhe e metterlo nella lista di array. C'è solo un problema. String Builder non ha clone(). Quindi quali sono le mie alternative?
Forse qualcuno potrebbe dare qualche idea su quale sia il modo migliore per farlo considerando le prestazioni e la memoria.
ArrayList characters = new ArrayList(); contatore 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;
"Non posso creare un nuovo costruttore stringa a causa della memoria" - una StringBuilder clonato utilizzerà una quantità simile di memoria, quindi come sarebbe questo ti aiuta? – DNA
'new StringBuilder (oldbuilder.toString())' è il modo più semplice per copiare uno StringBuilder. Non hai realmente spiegato cosa stai cercando di ottenere, quindi potresti essere in grado di archiviare semplicemente String da StringBuilder. – DNA
Yap ha capito che non sarà di aiuto comunque. Quindi sono fuori dalle opzioni per questo characters.add (new StringBuilder (sb)); fornisce l'eccezione java outOffMemory – Streetboy