stringtranslate.com

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

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

Синтаксис

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

Выполнение

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

Конкатенация наборов строк

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

Для двух наборов строк S 1 и S 2 конкатенация S 1 S 2 состоит из всех строк вида vw , где v — строка из S 1 , а w — строка из S 2 , или формально S 1 S 2 = { vw  : vS 1 , wS 2 } . Многие авторы также используют конкатенацию набора строк и одной строки, и наоборот, которые определяются аналогично S 1 w = { vw  : vS 1 } и vS 2 = { vw  : wS 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 руководство Возможности языка: операторы и выражения . Microsoft. 2015.
  2. ^ "SQL | Оператор конкатенации". geeksforgeeks.org . 12 января 2018 г. . Получено 11 августа 2023 г. .
  3. ^ "Оператор конкатенации". Oracle Database Online Documentation, 10g Release 2 (10.2) / Администрирование: Справочник SQL базы данных . Oracle.

Источники