it-swarm.com.de

Wie kann man in Java eine Zeichenfolge effizienter anhängen?

Ich habe ein Java-Programm geschrieben, in dem ich einen String anhängen muss 

" u13a2" zu einem bestehenden "u1234 u12de u1386 ... u15a3".

So wird die Saite nach und nach immer länger. Ich fand, dass die Zeit für jedes Anhängen auch immer länger wurde. Gibt es eine Möglichkeit, dies etwas zu verbessern?

Die Umsetzung kam mir in den Sinn:

unicodeArray += " "+unicode;

oder

unicodeArray = unicodeArray.concat(" "+unicode);

Sie gaben eine ähnliche Leistung. Ich denke, der Hauptgrund für diese schlechte Leistung ist der spezielle Typ String. Es erstellt für jede Aufgabe ein neues Objekt. Wenn Sie das auch meinen, bedeutet das, dass ich besser einen anderen Typ wie Byte-Array verwenden sollte?

31
JackWM

Verwenden Sie StringBuilder class. Es ist effizienter bei dem, was Sie versuchen. 

28
Pradeep Pati

Sie sollten die StringBuilder Klasse verwenden.

StringBuilder stringBuilder = new StringBuilder();

stringBuilder.append("Some text");
stringBuilder.append("Some text");
stringBuilder.append("Some text");

String finalString = stringBuilder.toString();

Bitte besuchen Sie auch:

Sie können hierfür StringBuffer oder StringBuilder verwenden. Beide dienen der dynamischen String-Manipulation. StringBuffer ist threadsicher, während StringBuilder dies nicht ist.

Verwenden Sie StringBuffer in einer Multithread-Umgebung. Wenn es sich jedoch um ein einzelnes Thread handelt, wird StringBuilder empfohlen und ist viel schneller als StringBuffer

- Jedes Mal, wenn Sie es anhängen oder ändern, wird ein neues String-Objekt erstellt.

- Verwenden Sie also die append()-Methode von StringBuilder (Wenn Thread-Sicherheit nicht wichtig) ist, verwenden Sie andernfalls StringBuffer (Wenn Thread-Sicherheit ist wichtig.), Ist dies effizient Weg, es zu tun.

2

Java.lang.StringBuilder. Verwenden Sie den int-Konstruktor, um eine Anfangsgröße zu erstellen.

0
Jeff Miller