# Wie lang darf ein String sein



## janat (25. Nov 2008)

Hallo,

kann mir jemand sagen, wie lang ein String sein darf. Ich habe mal was von 255 Zeichen gelesen. Stimmt das? 

Ich speichere eine txt-Datei in einem String ab ( ich weiss, es ist keine gute Idee, aber leider muss es so sein). Habe jetzt Strings gehabt, wo Länge über 1000 war. Das passt dann nicht zu 255 Zeichen. 

Gruß
janat


----------



## Wildcard (25. Nov 2008)

Integer.MAX_INT solange Heap und Adressbereicht groß genug sind. Ein paar hundert MB sind noch kein Problem, mach dir da also keine Sorgen.


----------



## SlaterB (25. Nov 2008)

man kann nur Pech haben mit einem unnötig langsamen Programm,
falls man z.B. 100 Zeilen mit String + zusammenbaut,

evtl. einen StringBuilder mit append(String) in Betracht ziehen

edit: ui, MB statt ..


----------



## janat (25. Nov 2008)

Danke für den Tipp, ich muss tatsächlich zuerst den String zusammenbauen. 

Habe mir den Stringbuffer schon angeguckt. Verstehe ich denn das richitg: ich mache mir z.B einen StringBuffer der Grösse 2000. Wenn ich dann append benutze, soll ich selber überwachen, ob die Grösse und der interne Puffer noch ok ist, oder macht er das automatisch? 

Und wie mache ich aus einem StringBuffer einen String ohne Leerzeichen von StringBuffer?

Danke


----------



## janat (25. Nov 2008)

Danke für den Tipp, ich muss tatsächlich zuerst den String zusammenbauen. 

Habe mir den Stringbuffer schon angeguckt. Verstehe ich denn das richitg: ich mache mir z.B einen StringBuffer der Grösse 2000. Wenn ich dann append benutze, soll ich selber überwachen, ob die Grösse und der interne Puffer noch ok ist, oder macht er das automatisch? 

Und wie mache ich aus einem StringBuffer einen String ohne Leerzeichen von StringBuffer?

Danke


----------



## SlaterB (25. Nov 2008)

eine initiale Größe ist vom Vorteil, muss aber nicht sein und genauso wenig ist es gravierend, wenn die Größe überschritten wird,
dann gibt sich der StringBuffer automatisch eine neue Größe, z.B. das Doppelte des alten Wertes,
(intern wird ein char[] dieser Größe gespeichert)

StringBuilder ist etwas neuer als StringBuffer und zu empfehlen

im StringBuilder Leerzeichen zu entfernen geht vielleicht, aber ist nicht unbedingt Standard, zumindest für mich bisher nicht,
mach einen String draus und verwende replaceAll() oder ähnliche String-Methoden


----------

