stringНачало работы со строкой


замечания

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

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

Версии

Версия замечание Дата выхода
ASCII String 7 бит 1963-06-17
UTF-8, 8 бит по умолчанию, переменная длина через суррогаты 1992-09-30
UCS-2 16 бит, как UTF-16 без суррогатов, использовал мой Microsoft Windows NT 1993-07-23
UTF-16 16 бит по умолчанию, переменная длина через суррогаты 1996-07-31

Струны

Строка представляет собой последовательность символов. На сегодняшний день строки поддерживаются всеми современными языками программирования 1, но нет консенсуса между разработчиками языка о том, как следует классифицировать строки. Что касается дизайна языка программирования, то необходимо учитывать две основные проблемы.

  1. Должна ли строка обрабатываться как примитивное или составное значение?
  2. Какие строковые операции должны предоставляться самим языком? 2

Путем создания строки примитивного значения строковые операции, предоставляемые языком, являются встроенными; и не может быть определена в самом языке. Это позволяет определенные оптимизации на уровне компилятора - особенно в отношении макета памяти и повторного использования строк с использованием так называемого пула строк. Компромисс заключается в том, что вы не можете использовать замену для строковых операций, и такие функции нужно будет вызывать с помощью обычных вызовов функций, тогда как синтаксис для использования встроенных операций обычно отличается. Следствием этого является то, что если и когда будут найдены более эффективные алгоритмы, нельзя просто изменить, какую библиотеку строк использовать. Был разработан надуманный пример, имеющий поиск подстроки как часть набора основных функций перед алгоритмом строкового поиска Boyer-Moore.

И наоборот, определяя строку как составное значение, такое как массив символов, все обычные операции с массивами становятся автоматически применимыми к строкам. Однако это приводит к тому, что все строки в языке являются фиксированными. 3

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

1 Сохраните более эзотерические, такие как Piet
2 Языки обычно предлагают сравнение строк, прежде всего равенство, объединение строк с другими строками, замену одиночных символов и подстрок и лексическую сортировку строк. 3 Обычно