русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функции вставки и замены подстрок


Дата добавления: 2015-01-08; просмотров: 819; Нарушение авторских прав


При обработке строк часто требуется вставить или заменить подстроки. Удаление подстроки из данной строки можно рассматривать как частный случай замены, а именно замены указанной подстроки пустой строкой. С помощью методов объекта String можно написать программу для решения этой задачи. Поскольку она часто встречается, то целесообразно оформить программу в виде функций.

Рассмотрим сначала функцию вставки строки в исходную строку. Назовем ее, например, insstr. Данная функция должна принимать три параметра: исходную строку s1, вставляемую строку s2 и индекс позиции вставки n.

function insstr(s1,s2 ,n) {

return s1.slice(0,n) + s2 + s1.slice(n)

}

insstr ("Привет, друзья", " мои", 7) // "Привет, мои друзья"

insstr("Привет, друзья", " мои", 100) // "Привет, друзья мои"

Теперь займемся функцией, которая заменяет в исходной строке все вхождения заданной подстроки на подстроку замены. Назовем эту функцию replacestr. Она должна принимать три параметра: исходную строку s1, заменяемую подстроку s2 и подстроку s3, которой следует заменить все вхождения s2 в s1 (s2 может встречаться в s1 несколько раз).

Очевидно, прежде всего необходимо найти все вхождения s2 в s1. Если исходная строка не содержит в себе подстрок s2, то функция должна вернуть исходную подстроку без всяких изменений. В противном случае требуется изъять из s1 все вхождения s2, а на их место вставить подстроку s3. Полученная таким образом строка должна возвращаться функцией в качестве результата. Ниже приведено определение функции для замены подстрок и два примера ее вызова:

function replacestr(s1, s2, s3) {

var s = "// обработанная часть строки

while (true) {

i = s1.indexOf(s2) //индекс вхождения s2 в s1

if (i >= 0) {

s = s + s1.substr(0, i) + s3 //обработанная часть строки



s1 = s1.substr(i + s2.length) //оставшаяся часть строки

} else break

}

return s + s1 }

replacestr('bacdae" , "a" , "X") // "bXcdXe"

x = "Иван Иванов"

replacestr (x , "Иван" , "Федор") // "Федор Федоров"

Заметим, что если заменяемая подстрока s2 является пустой, то цикл будет продолжаться бесконечно, поскольку пустая строка входит в состав любой строки.



<== предыдущая лекция | следующая лекция ==>
Методы String форматирования строк | Массивы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.465 сек.