English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Quando i dati devono essere modificati in grande quantità, quale scegliete in Java: String o StringBuffer?

delLa stringaIl tipo è una classe Java utilizzata per rappresentare un insieme di caratteri. Le stringhe in Java sono immutabili e una volta create non è possibile modificare il valore della stringa.

Poiché le stringhe sono immutabili, se tenti di assegnare un nuovo valore alla stringa, il suo riferimento pointedrà a un nuovo oggetto String, lasciando in memoria una String non utilizzata.

Java offre la classe StringBuffer come sostituto di String dove è necessario effettuare molte modifiche su stringhe di caratteri.

Puoi modificare/migliorare il contenuto di StringBuffer ripetutamente senza lasciare molti nuovi oggetti non utilizzati.

La classe StringBuilder è stata introdotta a partire da Java 5, la principale differenza tra StringBuffer e StringBuilder è che i metodi di StringBuilder non sono sicuri per la thread (non sincronizzati).

建议尽可能使用StringBuilder,因为它比StringBuffer快。但是,如果必须保证线程安全,则最好的选择是StringBuffer对象。

将字符串转换为StringBuilder

StringBuilder类的append()方法接受一个String值,并将其添加到当前对象

要将String值转换为StringBuilder对象,只需使用append()方法将其附加。

示例

在下面的Java程序中,我们将字符串数组转换为单个StringBuilder对象。

public class StringToStringBuilder {
   public static void main(String args[]) {
      String strs[] = {"Arshad", "Althamas", "Johar", "Javed", "Raju", "Krishna"};
      StringBuilder sb = new StringBuilder();
      sb.append(strs[0]);
      sb.append(" "+strs[1]);
      sb.append(" "+strs[2]);
      sb.append(" "+strs[3]);
      sb.append(" "+strs[4]);
      sb.append(" "+strs[5]);
      System.out.println(sb.toString());
   }
}

输出结果

Arshad Althamas Johar Javed Raju Krishna
Ti potrebbe interessare