Введение

Соединение строк в языке программирования
Операция над строками в компьютерном программировании
Конкатенация общих списков

В теории формальных языков и компьютерном программировании конкатенация строк – это операция объединения строковых последовательностей символов друг с другом. Например, конкатенация строк "snow" и "ball" дает "snowball". В некоторых формализациях теории конкатенации, также называемой теорией струн, конкатенация строк является базовым понятием.

Синтаксис

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

Реализация

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

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

Строки над алфавитом с операцией конкатенации образуют ассоциативную алгебраическую структуру с единичным элементом – пустой строкой, то есть свободный моноид. Множества строк с конкатенацией и дизъюнкцией образуют полукольцо, где конкатенация (*) дистрибутивна относительно дизъюнкции (+); 0 – пустое множество, а 1 – множество, состоящее только из пустой строки.

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

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

Математика для развлечений

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