Progress-servis55.ru

Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Stringbuilder java пример

Класс StringBuilder в Java с примерами

StringBuilder в Java представляет собой изменяемую последовательность символов. Поскольку класс String в Java создает неизменяемую последовательность символов, класс StringBuilder предоставляет альтернативу классу String , поскольку он создает изменяемую последовательность символов. Функция StringBuilder очень похожа на класс StringBuffer , поскольку оба они предоставляют альтернативу классу String , создавая изменяемую последовательность символов. Однако класс StringBuilder отличается от класса StringBuffer на основе синхронизации. Класс StringBuilder не гарантирует синхронизацию, а класс StringBuffer — нет. Поэтому этот класс предназначен для использования в качестве вставной замены для StringBuffer в местах, где StringBuffer использовался одним потоком (как это обычно бывает). Там, где это возможно, рекомендуется использовать этот класс вместо StringBuffer, так как он будет быстрее в большинстве реализаций. Экземпляры StringBuilder небезопасны для использования несколькими потоками. Если такая синхронизация необходима, рекомендуется использовать StringBuffer .

Конструкторы в Java StringBuilder:

  • StringBuilder (): создает построитель строк без символов и начальной емкостью 16 символов.
  • StringBuilder (intacity): создает построитель строк без символов и начальной емкости, указанной аргументом емкости.
  • StringBuilder (CharSequence seq): создает построитель строк, содержащий те же символы, что и указанный CharSequence.
  • StringBuilder (String str): создает построитель строк, инициализированный для содержимого указанной строки.

Ниже приведен пример программы для иллюстрации StringBuilder на Java:

// Java-код для иллюстрации StringBuilder

public class GFG1 <

public static void main(String[] argv)

// создаем объект StringBuilder

// конструктор usind StringBuilder ()

// создаем объект StringBuilder

// конструктор usind StringBuilder (CharSequence)

= new StringBuilder( «AAAABBBCCCC» );

// создаем объект StringBuilder

// конструктор usind StringBuilder (емкость)

= new StringBuilder( 10 );

System.out.println( «String2 capacity = «

// создаем объект StringBuilder

// конструктор usind StringBuilder (String)

Методы в Java StringBuilder:

  1. StringBuilder append (X x) : этот метод добавляет строковое представление аргумента типа X в последовательность.
  2. StringBuilder appendCodePoint (int codePoint) : этот метод добавляет строковое представление аргумента codePoint к этой последовательности.
  3. intacity () : этот метод возвращает текущую емкость.
  4. char charAt (int index) : этот метод возвращает значение char в этой последовательности по указанному индексу.
  5. IntStream chars () : этот метод возвращает поток значений int, расширяющих ноль, из этой последовательности.
  6. int codePointAt (int index) : этот метод возвращает символ (кодовая точка Unicode) по указанному индексу.
  7. int codePointBefore (int index) : этот метод возвращает символ (кодовая точка Unicode) перед указанным индексом.
  8. int codePointCount (int beginIndex, int endIndex) : Этот метод возвращает количество кодовых точек Unicode в указанном текстовом диапазоне этой последовательности.
  9. IntStream codePoints () : этот метод возвращает поток значений кодовой точки из этой последовательности.
  10. StringBuilder delete (int start, int end) : этот метод удаляет символы в подстроке этой последовательности.
  11. StringBuilder deleteCharAt (int index) : этот метод удаляет символ в указанной позиции в этой последовательности.
  12. void sureCapacity (intimumCapacity) : Этот метод гарантирует, что емкость по крайней мере равна указанному минимуму.
  13. void getChars (int srcBegin, int srcEnd, char [] dst, int dstBegin) : символы этого метода копируются из этой последовательности в массив символов назначения dst.
  14. int indexOf () : Этот метод возвращает индекс в этой строке первого вхождения указанной подстроки.
  15. StringBuilder insert (int offset, boolean b) : этот метод вставляет строковое представление аргумента booalternatelean в эту последовательность.
  16. StringBuilder insert () : этот метод вставляет строковое представление аргумента char в эту последовательность.
  17. int lastIndexOf () : Этот метод возвращает индекс в этой строке последнего вхождения указанной подстроки.
  18. int length () : этот метод возвращает длину (количество символов).
  19. int offsetByCodePoints (int index, int codePointOffset) : этот метод возвращает индекс в этой последовательности, который смещен от данного индекса на кодовые точки codePointOffset.
  20. StringBuilder replace (int start, int end, String str) : этот метод заменяет символы в подстроке этой последовательности на символы в указанной строке.
  21. StringBuilder reverse () : Этот метод вызывает замену этой последовательности символов на обратную.
  22. void setCharAt (int index, char ch) : в этом методе символ по указанному индексу устанавливается в ch.
  23. void setLength (int newLength) : Этот метод устанавливает длину последовательности символов.
  24. CharSequence subSequence (int start, int end) : Этот метод возвращает новую последовательность символов, которая является подпоследовательностью этой последовательности.
  25. String substring () : этот метод возвращает новую строку, содержащую подпоследовательность символов, которая в настоящее время содержится в этой последовательности символов.
  26. String toString () : этот метод возвращает строку, представляющую данные в этой последовательности.
  27. void trimToSize () : этот метод пытается уменьшить объем памяти, используемой для последовательности символов.
Читать еще:  Java util zip

// Java-код для иллюстрации
// методы StringBuilder

Строки в Java: String, StringBuilder, StringBuffer

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

На практике Вы будете больше работать и встречать объект String, как один из самых удобный и наиболее применяемых объектов для работы со строковыми переменными в джава. Именно его функционал мы сегодня и рассмотрим.

Класс String — основной класс представляющий строки

Мы уже создавали строковые переменные и тогда я просил Вас поверить мне на слово и просто писать что-то вроде: String hello = «Hello world». Это и есть первый способ создать строковую переменную. Второй способ — это создать строку как мы создаем экземпляр класса, новые объекты через ключевое слово new. String hello = new String(«Hello world»). Различия в способах более существенны, чем кажутся на первый взгляд. Для того чтобы понять их нужно немного узнать о распределении памяти.

В языке Java объекты хранятся в куче (heap), а примитивные типы и ссылки на объекты в стеке (stack). Но есть еще такой механизм как пул (pool). Это механизм, если можно так назвать, сохранения строковых переменных для экономии места в памяти. Я нарисовал примерную схему. И попытаюсь объяснить по ней:

Выглядит не очень. Я знаю.

Когда мы создаем строку через ключевое слово new, тогда создается одна строка в пуле и в куче. Если строка создается без ключевого слова new, вот таким образом: String hello = «Hello world» — тогда она создается только в пуле. Если так создать точно такую же строку, новый объект не создается, а две переменные ссылаются на один объект в пуле. Такой механизм пула есть только в объекта String и классов-оберток для примитивных типов (о них мы еще поговорим).

Читать еще:  Интерполяция строк javascript

Заметьте, как работает память с другими объектами. На примере объекта Cat видно, что при создании нового объекта с той же самой ссылкой, старый объект уничтожается сборщиком мусора — это специальный механизм в Java, задача которого освобождать память от ненужных объектов (тех на которые потеряна ссылка).

Основные методы строк

Теперь что касается методов со строками. Класс String в этом плане имеет множество полезных методов; наиболее полезные и часто используемые мы сейчас разберем.

  1. lengtn() — возвращает длину строки;
  2. charAt(int number) — возвращает символ по указанному индексу. Отсчет идет с 0;
  3. indexOf(char sumbol) — возвращает индекс по указанному символу. Если символа не найдено возвращается -1;
  4. substring(int startIndex) — возвращает подстроку строки начиная с указанного индекса;
  5. substring(int startIndex, int endIndex) — возвращает подстроку строки начиная с указанного индекса и заканчивая указанным индексом;
  6. startsWith(String sumbolOrSumbols) — возвращает true если строка начинается с указанного слова или символа;
  7. toLowerCase() — переводит строку в нижний регистр;
  8. toUpperCase() — переводит строку в верхний регистр;
  9. replaceAll(String partWhichReplace, String partOnWhichReplace) — заменяет часть строки на заменяемую строку
  10. equals(String strToCompare) — сравнение строк. Данный метод используется для сравнения объектов не по ссылке, а по содержанию;
  11. equalsIgnoreCase(String strToCompare) — сравнение без учета регистра;
  12. trim() — убирает пробелы в конце и в начале строки (если есть);
  13. toCharArray() — разбивает строку на массив char;
  14. split(String reqexp) — разбивает строку по заданному символу.

Java StringBuilder

Java StringBuilder class is mutable sequence of characters. StringBuilder Class can be comparable to String however the StringBuilder class provides more versatility because of its modification features.

Table of Contents

Java StringBuilder

  • StringBuilder class provides an API similar to StringBuffer, but unlike StringBuffer, it doesn’t guarantee thread safety.
  • Java StringBuilder class is designed for use as a drop-in replacement for StringBuffer in places where the string buffer was being used by a single thread (as is generally the case).
  • If execution speed and performance is a factor, StringBuilder class can be used in place of StringBuffer.
  • The bread-and-butter operations provided by the StringBuilder Class are the append() and insert() methods. These methods are overloaded within StringBuilder in order to accommodate different data type.
  • The general process flow of StringBuilder append and insert methods is: (1) converts a given data to a string then (2) appends or inserts the characters of that string to the string builder. Java StringBuilder append() method always adds these characters at the end of the builder; insert() method inserts character(s) at a specified point.

StringBuilder Class Diagram

StringBuffer and StringBuilder

StringBufferStringBuilder
Synchronized, hence thread safe.Not synchronized, not thread safe.
Operates slower due to thread safety featureBetter performance compared to StringBuffer
Has some extra methods – substring, length, capacity etc.Not needed because these methods are present in String too.
Introduced in Java 1.2Introduced in Java 1.5 for better performance.
Читать еще:  File not found exception java

Java StringBuilder Constructors

ConstructorDescription
StringBuilder()Creates an empty string builder with a default capacity of 16 (16 empty elements).
StringBuilder(CharSequence cs)Constructs a string builder containing the same characters as the specified CharSequence, plus an extra 16 empty elements trailing the CharSequence.
StringBuilder(int initCapacity)Creates an empty string builder with the specified initial capacity.
StringBuilder(String s)Creates a string builder whose value is initialized by the specified string, plus an extra 16 empty elements trailing the string.

StringBuilder Length and Capacity

Java StringBuilder class, much like the String class, has length() method that returns the length of the character sequence in the builder.

However, StringBuilder inherits capacity() method from its superclass AbstractStringBuilder , that returns the number of character spaces that have been allocated. The returned value is always greater than or equal to the length (usually greater than) and automatically expands whenever necessary to accommodate character additions to the string builder.

There are couple of other methods related to StringBuilder length and capacity.

  1. void setLength(int newLength) : Sets the length of the character sequence. If newLength is less than length(), the last characters in the character sequence are truncated. If newLength is greater than length(), null characters are added at the end of the character sequence.
  2. void ensureCapacity(int minCapacity) : Ensures that the capacity is at least equal to the specified minimum.

StringBuilder methods like append() , insert() or setLength() can increase the length of the character sequence in the string builder so that the returned value of length() would be greater than the current capacity(). In this case, the capacity is automatically increased.

Java StringBuilder Example

Let’s see the examples of different methods of StringBuilder class.

    append() : The StringBuilder append() method concatenates or attaches the passed String argument with the existing declared string. It attaches it after the declared string.

Output: Hello World

  • insert() : StringBuilder insert() method inserts the passed String argument at the passed String index.
  • replace(int startIndex, int endIndex, String str) : StringBuilder replace() method replaces the existing declared string. String replacement occurs from the passed startingIndex up to the endingIndex.
  • delete(int startIndex, int endIndex) : StringBuilder delete() method deletes a character or sets of characters. Deletion occurs at passed startingIndex up to endingIndex.
  • reverse() : The reverse() method of StringBuilder class reverses the existing declared string. Invoking a reverse() method on a StringBuilder object with no existing declared value throws NullPointerException.
  • capacity() : The capacity() method of StringBuilder >ensureCapacity() : The ensureCapacity() method of StringBuilder class ensures that the given capacity is the minimum to the current capacity. If it is greater than the current capacity, it increases the capacity by (old_capacity*2)+2 e.g. at current capacity 16, it becomes (16*2)+2 which is 34.
  • That’s all for Java StringBuilder class. It’s a very useful class to work with Strings in java.

    Ссылка на основную публикацию
    Adblock
    detector