20. maj 2002 - 16:34Der er
9 kommentarer og 2 løsninger
Replace i StringBuffer
Det ser ud til, at der er et problem, når man ønsker at replace de sidste to pladser i en StringBuffer med andre tegn. StringBufferen vil udvide pladsen og skubber de oprindelige to tegn til højre for de to nye, således at strengen ved gentagne kald blot vokser og vokser...
Hvorfor - og hvordan får man den til at lade være med det?
Følgende virker fint: public class Main { public static void main(String args[]) { StringBuffer sb = new StringBuffer(); sb.append("HELLO"); sb.append(" "); sb.append("WORLD??");
Jeg kan se, at dit herlige "hello world" eksempel virker fint... også hvis man erstatter sb.length() osv. med absolutte værdier... men jeg kan ikke lige greje, hvorfor det ikke virker i min kode?!?!
ok... spørgsmålet er så bare, hvor meget kode jeg skal kaste efter dig... StringBufferen bliver brugt til at lave en protokol, hvor en række konkrete klasser har hver deres delvise implementation af et større klasse hierarki, hvor metoden createProkol() bliver kaldt polymorfsk ned i gennem...
public void createProtokol() { super.createProtokol(); if ((maxHeat-currentHeat)/maxHeat<10) getProtokol().replace(17, 19, "0"+(maxHeat-currentHeat)/maxHeat); else getProtokol().replace(17, 19, ""+(maxHeat-currentHeat)/maxHeat); }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.