Класс Java StringBuilder

Java StringBuilder идентичен StringBuffer, за исключением одного важного различия, которое не синхронизировано, это означает, что он не является потокобезопасным. Основное отличие между StringBuffer и StringBuilder - StringBuffer синхронизируется, но StringBuilder - нет. Вы должны предпочесть StringBuilder во всех случаях, когда у вас есть только один поток, обращающийся к вашему объекту.

Важными методами в классе StringBuilder являются append(), insert(), replace(), delete(), reverse() и capacity(). Следующая Java-программа иллюстрирует важные методы в классе StringBuilder.

Пример

 
class TestClass{
  public static void main (String[] args){
    // добавление значений в StringBuilder
    StringBuilder sb = new StringBuilder("The ");
    sb.append( "Java " );
    sb.append( "Tutorial " );
    System.out.println(sb);
    // вывод: учебник по Java
    // вставляем указанную строку этой строкой в ​​указанной позиции
    sb.insert(8," StringBuilder ");
    System.out.println(sb);
    // output: Учебник Java StringBuilder
    // заменяем строку из указанных startIndex и endIndex
    sb.replace(4,4,"Good");
    System.out.println(sb);
    // вывод: учебник по стилю GoodJava StringBuilder
    // удалить строку из указанных startIndex и endIndex
    sb.delete(0,4);
    System.out.println(sb);
    // вывод: GoodJava StringBuilder Tutorial
    // отменить строку
    sb.reverse();
    System.out.println(sb);
    // вывод: lairotuT redliuBgnirtS avaJdooG
    // вернуть текущую емкость
    StringBuilder nsb = new StringBuilder();
    System.out.println(nsb.capacity());
    // output: 16, емкость по умолчанию 16
    nsb.append("The Java Tutorial ");
    System.out.println(nsb.capacity());
    // вывод: 34, (oldcapacity * 2) +2, (16 * 2) +2
  }
}

Выход

 
The Java Tutorial
The Java StringBuilder  Tutorial
The GoodJava StringBuilder  Tutorial
GoodJava StringBuilder  Tutorial
 lairotuT  redliuBgnirtS avaJdooG
16
34
34
34

Метод append() StringBuilder

Основными операциями в StringBuilder являются метод append, который перегружен, чтобы принимать данные любого типа. Добавления String становятся все более дорогими, поскольку строки становятся длиннее и требуется больше памяти. Например:

 
class TestClass{
  public static void main (String[] args) {
    String str = "";
    for (int i = 0; i < 100; i++) {
      str += ", " + i;
    }
    System.out.println(str);
  }
}

В приведенном выше случае вы должны использовать StringBuilder вместо String, потому что он намного быстрее и потребляет меньше памяти.

 
class TestClass{
  public static void main (String[] args) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < 100; i++) {
      sb.append(i + ", " );
    }
    System.out.println(sb);
  }
}

Если у вас есть один оператор,

 
String s = "a, " + "b, " + "c, " + "d, " ...;

то вы можете использовать Strings, потому что компилятор будет автоматически использовать StringBuilder.

Разность Mutability String и StringBuilder

Строка неизменна, если вы пытаетесь изменить их значения, создается другой объект, тогда как StringBuilder изменяются, поэтому они могут изменять свои значения.

Источник: http://net-informations.com/Java/string/stringbuilder.htm

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector