Bazaprogram.ru

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

Stringbuilder replace java

StringBuilder replace () в Java с примерами

Метод replace (int start, int end, String str) класса StringBuilder используется для замены символов в подстроке этой последовательности символами в указанной строке. Подстрока начинается в указанном начале индекса и продолжается до символа в конце индекса — 1 или до конца последовательности, если такой символ не существует. Сначала символы подстроки удаляются, а строка, переданная в качестве параметров, вставляется вместо этих символов.
Синтаксис:

Параметры:
Этот метод принимает три параметра:

  1. start — значение типа Integer, которое относится к начальному индексу.
  2. end — целочисленное значение типа, которое относится к конечному индексу.
  3. str — значение типа String, которое ссылается на строку, которая заменит предыдущее содержимое.

Возвращает:
Этот метод возвращает объект StringBuilder после успешной замены символов.
Исключение:
Если начало отрицательное, больше, чем length (), или больше, чем конец, то StringIndexOutOfBoundsException.

Ниже программы иллюстрируют метод java.lang.StringBuilder.replace ():
Пример 1:

// Java-программа для демонстрации
// метод replace ().

public static void main(String[] args)

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

// с передачей String в качестве параметра

= new StringBuilder( «WelcomeGeeks» );

// заменить символ из индекса с 1 по 7 на «e are»

StringBuilder strReturn = str.replace( 1 , 7 , «e are » );

System.out.println( «After Replace() String = «

Выход:

Пример 2:

// Java-программа для демонстрации
// метод replace ().

public static void main(String[] args)

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

// с передачей String в качестве параметра

= new StringBuilder( «Tony Stark will die» );

// заменить символ из индекса с 15 по 16 на «not»

StringBuilder strReturn = str.replace( 15 , 16 , » not » );

System.out.println( «After Replace() String = «

Выход:

Пример 3: когда передается отрицательный индекс:

// Java-программа для демонстрации
// Исключение, выданное методом replace ().

public static void main(String[] args)

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

// с передачей String в качестве параметра

= new StringBuilder( «Tony Stark» );

// заменить символ из индекса от -15 до 16 на «Капитан Америка»

StringBuilder strReturn = str.replace(- 15 , 16 , «Captain America» );

catch (Exception e) <

Выход:

Пример 4: когда переданный начальный индекс больше конечного индекса:

// Java-программа для демонстрации
// Исключение, выданное методом replace ().

public static void main(String[] args)

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

// с передачей String в качестве параметра

= new StringBuilder( «Tony Stark» );

// заменить персонажа с индекса 5 на 3 на «Капитан Америка»

Классы StringBuffer и StringBuilder

Класс String представляет собой неизменяемые последовательности символов постоянной длины и частое использование объектов класса занимают много места в памяти. Класс StringBuffer представляет расширяемые и доступные для изменений последовательности символов, позволяя вставлять символы и подстроки в существующую строку и в любом месте. Данный класс гораздо экономичнее в плане потребления памяти и настоятельно рекомендуется к использованию.

Существует четыре конструктора класса:

  1. StringBuffer() — резервирует место под 16 символов без перераспределения памяти
  2. StringBuffer(int capacity) — явно устанавливает размер буфера
  3. StringBuffer(String string) — устанавливает начальное содержимое и резервирует 16 символов без повторого резервирования
  4. StringBuffer(CharSequence cs) — создаёт объект, содержащий последовательность символов и резервирует место ещё под 16 символов

Методы класса StringBuffer

length()

Метод позволяет получить текущую длину объекта.

Читать еще:  Javascript return function

capacity()

Метод позволяет получить текущий объём выделенной памяти.

Обратите внимание, что хотя слово состоит из четырёх символов, в памяти выделено запасное пространство для дополнительных 16 символов. Для такой простейшей операции выигрыша нет, но в сложных примерах, когда приходится на лету соединять множество строк, производительность резко возрастает.

ensureCapacity()

Можно предварительно выделить место для определённого количества символов, если собираетесь добавлять большое количество маленьких строк.

setLength(int length)

Устанавливает длину строки. Значение должно быть неотрицательным.

charAt(int index) и setCharAt(int index, char ch)

Можно извлечь значение отдельного символа с помощью метода charAt() и установить новое значение символа с помощью метода setCharAt(), указав индекс символа и его значение.

getChars()

Позволяет скопировать подстроку из объекта класса StringBuffer в массив. Необходимо позаботиться, чтобы массив был достаточного размера для приёма нужного количества символов указанной подстроки.

append()

Метод соединяет представление любого другого типа данных. Есть несколько перегруженных версий.

Строковое представление каждого параметра за кулисами получают через метод String.valueOf() и затем полученные строки склеиваются в итоговую строку.

insert()

Вставляет одну строку в другую. Также можно вставлять значения других типов, которые будут автоматически преобразованы в строки. Вам надо указать индекс позиции, куда будет вставляться строка.

reverse()

Позволяет изменить порядок символов на обратный.

У меня получилось практически то же самое, может метод глючит?

delete() и deleteCharAt()

Метод delete() удаляет последовательность символов, вам надо задать индекс первого символа, который надо удалить, а также индекс символа, следующего за последним из удаляемых. Метод deleteCharAt() удаляет один символ из указанной позиции.

replace()

Позволяет заменить один набор символов на другой. Нужно указать начальный и конечный индекс и строку замены.

substring()

Позволяет получить часть содержимого. Есть две формы метода. В первом случае нужно указать индекс начала позиции, с которой нужно получить подстроку. Во втором варианте указывается начальный индекс и конечный индекс, если нужно получить текст из середины строки.

Есть и другие методы

StringBuilder

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

Создадим новый объект.

Добавляем новый фрагмент в существующую строку:

Соединять строки можно цепочкой.

Данный код работает чуть быстрее, чем вызов append() по отдельности. Но это будет заметно при очень больших объёмах.

Java StringBuilder

Java StringBuilder tutorial shows how to use StringBuilder in Java. Java String objects are immutable; it is only possible to create mofied copies of the original string. When we need to modify strings in-place, we use StringBuilder .

StringBuilder

StringBuilder is a mutable sequence of characters. StringBuilder is used when we want to modify Java strings in-place. StringBuffer is a thread-safe equivalent similar of StringBuilder .

StringBuilder has methods such as append() , insert() , or replace() that allow to modify strings.

Java StringBuilder constructors

StringBuilder has four constructors:

ConstructorDescription
StringBuilder()creates an empty a string builder with an initial capacity of 16 characters
StringBuilder(CharSequence seq)creates a string builder from a CharSequence
StringBuilder(int capacity)creates an empty string builder with the specified initial
StringBuilder(String str)creates a string builder from the specified string

Java StringBuilder is mutable

Java String is immutable while StringBuilder is mutable.

The example demonstrates the main difference between String and StringBuilder .

Java String has a replace() method but it does not modify the original string. It creates a modifed copy instead.

On the other hand, StringBuilder replaces the string in-place.

This is the output.

Java StringBuilder append method

StringBuilder contains several overload append() methods that add a value at the end of the string.

The example builds one big string from hundreds of small strings. The string has the following form: 1 + 2 + 3 + . + MAX_VAL = SUM.

An empty StringBuilder is created.

A range of values 1..MAX_VAL is created. We iterate over these values with the forEach() method.

We append the current value to the string builder with the append() method.

In order for the output to fit the screen, we add a newline character after each ten values.

Between the values, we add either the «+» or the «=» characters.

At the end of the string, we add the sum of values.

Finally, the string is printed to the console.

Java StringBuilder insert method

The insert() method is used to insert a string into the specified position of the builder.

The example inserts a string into a sentence with the insert() method.

We have created this sentence.

Getting indexes of substrings

The indexOf() method returns the first occurrence of a substring while the lastIndexOf() method returns the last occurrence.

The example uses the indexOf() and lastIndexOf() methods to get the indexes of the «wolf» substring.

We create a string builder with the append() method.

We get the first occurrence of the «wolf» term from the builder.

We get the first occurrence of the «wolf» term from the builder, starting from the index 15.

Similarly, we get the last occurrences of the «wolf» substring.

This is the output.

StringBuilder replace method

The replace() method replaces a substring in the string builder with the specified new string.

The example replaces the «fox» substring with the «dog» string.

We find the beginning index of the substring to be replaced.

In our operation, we need to know the length of the substring.

We call the replace() method. The first parameter is the starting index, the second is the ending index of the substring to be removed. The third parameter is the new string.

Java StringBuilder delete characters

There are two methods for deleting characters in a string builder.

The example deletes a few characters from a string.

With the delete() method, we delete a substring specified by the indexes.

With the delete() method we delete one character; in our case it is a redundant space character.

This is the output.

Java StringBuilder substrings

With the substring() method it is possible to return substrings from a string.

In the example, we retrieve two substrings.

This line retrives a substring with a starting index 15 and ending index 18.

Here we retrie a substring from index 15 until the end of the sentence.

This is the output.

In this tutorial, we have worked with Java StringBuilder. List all Java tutorials.

Java Stringbuilder.replace

Рассмотрим следующие входные данные:

Каков был бы наиболее эффективный способ при использовании StringBuilder заменить любую цифру непосредственно перед девяткой следующей буквой после нее в алфавите?

После обработки этих входов выход должен быть:

Я некоторое время чесал голову, и StringBuilder.setCharAt был лучшим методом, который я мог придумать.

Любые советы или предложения будут оценены.

5 Ответов

Поскольку вы должны смотреть на каждый символ, вы никогда не будете работать лучше, чем линейный размер буфера. Так что вы можете просто сделать что-то вроде

Вы можете следующий код:

OUTPUT:

Вы хотите использовать очень простую государственную машину. Для каждого символа, который вы просматриваете в строке ввода, следите за логическим значением. Если символ равен 9, установите логическое значение true. Если символ-это буква, добавьте ее к букве и установите логическое значение false. Затем добавьте символ к выходу stringbuilder.

Для ввода вы используете Reader . Для вывода используйте StringBuilder .

Используйте метод парсера 1 токен look ahead. Вот некоторые psuedoish код:

другое решение, например, использовать

в некотором смысле, как указал Эрнест Фридман-Хилл, возьмите это как экспериментальный пример, а не самый эффективный

Похожие вопросы:

Я скачал поток как byte[] ‘raw’, что составляет около 36 МБ. Затем я преобразую это в строку с помощью string temp = System.Text.Encoding.UTF8.GetString(raw) Тогда мне нужно заменить все n на.

У меня есть строка, в которой мне нужно заменить маркеры значениями из словаря. Она должна быть максимально эффективной. Выполнение цикла с string.replace просто потребляет память (строки.

Из построителя строк post Replace() быстрее, чем строка replace() .NET язык Я хочу знать, если тот же ответ действителен для java, а также или нет. Я проверил и нашел StringBuilder builder = . ;.

Я хочу знать, нужно ли мне делать String.Replace / StringBuilder.Replace на моей строке. Так что у меня есть два способа сделать это. Первый способ: var myString = new StringBuilder(abcd); var.

Если вы должны использовать String.Replace() для замены теста 50 раз, вам, по сути, придется создать новую строку 50 раз. Делает ли StringBuilder.Replace() это более эффективно? E.g., должен ли я.

У меня есть предварительно сгенерированные представления по шаблонам следующей ссылки: http://blogs.msdn.com/b/adonet/archive/2008/06/20/how-to-use-a-t4-template-for-view-generation.aspx Мне нужно.

Я использую StringBuilder.Replace в скрипте PowerShell для удаления разрывов строк в текстовых полях перед выводом в файл журнала. Ниже приведен пример того, что я использую. и он отлично работает.

Мне приходится делать много текстовых замен. Какой класс лучше всего использовать, чтобы сделать это наиболее эффективным способом? Это StringBuilder? StringBuilder stringBuilder=new.

В сценариях, где я использую замены 5-10, необходимо использовать stringbuilder. String someData = . ; someData = someData.replaceAll((?s) .*? , ); someData =.

Я новичок в C#,, поэтому, пожалуйста, простите мне мои ошибки. Я хочу заменить некоторую часть строки, каждый раз, когда этот кусок кода вызывается (2-4 раз за вызов). Мне было интересно, какой.

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