Jump to content

Конкатенация

(Перенаправлено из Объединения )

В теории формального языка и программировании компьютерном конкатенация строк — это операция сквозного соединения символов строк . Например, сочетание слов «снег» и «мяч» — это «снежный ком». В некоторых формализациях теории конкатенации , также называемой теорией струн, конкатенация строк является примитивным понятием .

Синтаксис

[ редактировать ]

Во многих языках программирования конкатенация строк представляет собой бинарный инфиксный оператор , а в некоторых она записывается без оператора. Это реализуется разными способами:

  • Перегрузка знака плюс + Пример из С#: "Hello, " + "World" имеет значение "Hello, World".
  • Выделенный оператор, например . в PHP, & в Visual Basic [1] и || в SQL. [2] [3] Это имеет преимущество перед повторным использованием + что он позволяет неявное преобразование типа в строку.
  • конкатенация строковых литералов , что означает, что соседние строки объединяются без какого-либо оператора. Пример из C: "Hello, " "World" имеет значение "Hello, World".

Выполнение

[ редактировать ]

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

Объединение наборов строк

[ редактировать ]

В теории формального языка и сопоставлении с образцом (включая регулярные выражения ) операция конкатенации строк обобщается до операции над наборами строк следующим образом:

наборов строк S1 и S2 , конкатенация состоит S1 Для S2 , вида vw где v строка из S1 двух а w — строка из S2 из , или формально S1 S2 всех строк = { vw : v S 1 , ш S 2 } . Многие авторы также используют конкатенацию набора строк и одной строки и наоборот, которые определяются аналогично S 1 w = { vw : v S 1 } и vS 2 = { vw : w S 2 } . В этих определениях строка vw представляет собой обычное объединение строк v и w , как определено во вводном разделе.

Например, если F = {a, b, c, d, e, f, g, h } и R = { 1, 2, 3, 4, 5, 6, 7, 8 } , то FR обозначает множество всех координат шахматной доски в алгебраических обозначениях , а e R королей обозначает множество всех координат кортежа .

В этом контексте наборы строк часто называют формальными языками. Оператор конкатенации обычно выражается как простое сопоставление (как и в случае с умножением ).

Алгебраические свойства

[ редактировать ]

Строки в алфавите с помощью операции конкатенации образуют ассоциативную алгебраическую структуру с единичным элементом — нулевой строкой свободным моноидом .

Наборы строк при конкатенации и чередовании образуют полукольцо , причем конкатенация (*) распределяется по чередованию (+); 0 — пустой набор , а 1 — набор, состоящий только из нулевой строки.

Приложения

[ редактировать ]

Аудио/телефония

[ редактировать ]

В программировании для телефонии конкатенация используется для предоставления пользователю динамической звуковой обратной связи. «время суток» Например, в часах, говорящих , конкатенация используется для определения правильного времени путем воспроизведения соответствующих записей, объединенных вместе. Например:

  • «На тону время будет»
  • "Восемь"
  • "Тридцать"
  • "Пять"
  • "и"
  • "Двадцать"
  • "Пять"
  • «Секунды»

Сами записи существуют отдельно, но проигрывание их одна за другой дает слушателю грамматически правильное предложение.

Этот метод также используется в объявлениях о смене номера, системах голосовой почты или большинстве телефонных приложений, которые обеспечивают динамическую обратную связь с вызывающим абонентом (например, Moviefone , Tellme и другие).

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

Теория баз данных

[ редактировать ]

Один из принципов проектирования реляционных баз данных заключается в том, что поля таблиц данных должны отражать одну характеристику предмета таблицы, то есть они не должны содержать составные строки. Если в отчете требуется объединение, оно должно быть предусмотрено во время запуска отчета. Например, для отображения физического адреса определенного клиента данные могут включать номер здания, название улицы, номер подразделения здания, название города, название штата/провинции, почтовый индекс и название страны, например: «123 Fake St. Apt 4, Boulder, CO 80302, USA», который объединяет семь месторождений. Однако таблица данных клиентов не должна использовать одно поле для хранения этой объединенной строки; скорее, объединение семи полей должно произойти при запуске отчета. Причина таких принципов в том, что без них ввод и обновление больших объемов данных становится подверженным ошибкам и трудоемким. Отдельный ввод города, штата, почтового индекса и страны позволяет проверить ввод данных (например, обнаружить недопустимое сокращение штата). Затем эти отдельные элементы можно использовать для сортировки или индексирования записей, например, всех с «Боулдер» в качестве названия города.

Рекреационная математика

[ редактировать ]

В развлекательной математике многие проблемы касаются свойств чисел при сцеплении их цифр в некотором основании . Примеры включают домашние простые числа (простые числа, полученные путем многократного факторизации возрастающей конкатенации простых множителей заданного числа), числа Смарандаша–Веллина (объединения первых простых чисел ), а также Чамперноуна и константы Коупленда–Эрдеша (действительные числа, образованные десятичные представления натуральных и простых чисел соответственно).

См. также

[ редактировать ]
  1. ^ «Операторы конкатенации в Visual Basic» . Руководство по .NET Visual Basic Возможности языка: операторы и выражения . Майкрософт. 2015.
  2. ^ «SQL | Оператор конкатенации» . geeksforgeeks.org . 12 января 2018 года . Проверено 11 августа 2023 г.
  3. ^ «Оператор конкатенации» . Онлайн-документация по базе данных Oracle, 10g, выпуск 2 (10.2) / Администрирование: Справочник по SQL базы данных . Оракул.

Источники

[ редактировать ]


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3dba53ae864794534ebb59ac68eb37f1__1720968300
URL1:https://arc.ask3.ru/arc/aa/3d/f1/3dba53ae864794534ebb59ac68eb37f1.html
Заголовок, (Title) документа по адресу, URL1:
Concatenation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)