Хотя Mathematica ориентирована на математические приложения, в ней достаточно полно представлены функции для работы со строками (strings). Они могут потребоваться как для организации вывода текстовых сообщений (например надписей на графиках), так и для организации текстового диалога при разработке пакетов расширений и приложений системы. К тому же надо постоянно помнить, что Mathematica — система символьной математики, так что символьным преобразованиям, как сугубо математическим, так и общепринятым, в ней, естественно, уделено много внимания.
Многие функции для работы со строками выполняют общепринятые преобразования, имеющиеся в большинстве языков программирования высокого уровня. Строкой является произвольная цепочка символов, заключенная в кавычки, например "String". Ниже представлены некоторые функции для работы со строками:
StringByteCount ["string"] — возвращает полное число байтов, используемых для хранения символов в строке "string";
StringDrop ["string", {m, n}] — возвращает строку "string", удалив в ней символы от m до п;
Stringlnsert ["string1", "string2",M] — вставляет строку "string2" в строку "string1", начиная с позиции М от начала этой строки (при отри-, цательном М позиция отсчитывается от конца указанной строки);
StringLength ["string" ] — возвращает число символов в строке;
StringReplace["string", "s1 -> "spl"] или StringReplace["string", {"s1" -> "spl", "s2" -> "sp2",...}] — замещает "s1" на "spi" всякий раз, когда они появляются как подстроки "string";
StringReverse ["string"] — меняет порядок символов в строке "string" на противоположный;
StringPosition["string", "sub"] — возвращает список с позициями строки "sub" в строке "string" (дополнительные формы см. в справочной системе);
StringTake ["string", n] — возвращает строку, состоящую из первых п символов строки "string";
StringTake ["string", -n] — возвращает последние п символов из строки "string";
StringTake ["string", {n}] — возвращает n-й символ в строке "string";
StringTake ["string", {m, n}] — возвращает строку из символов, расположенных в позициях от m до п строки "string".
Эти функции хорошо известны программистам, работающим с современными языками программирования. Большое число дополнительных функций для работы со строками можно найти в приложении. Обилие таких функций в языке программирования системы Mathematica указывает на его универсальный характер и обширные возможности в решении даже на первый взгляд далеких от математики задач. Ниже приведены примеры действия ряда функций работы со строками.
Ввод (In)
Вывод (Out)
StringByteCount [ "Hello ! " ]
6
StringDrop ["Hello my friend!", 6]
my friend!
StringDrop ["Hello my friend! ", -10]
Hello
StringDrop ["Hello my friend! ", {7}]
Hello у friend!
StringDrop [ "Hello my friend ! " , { 6 , 8 } ]
Hello friend!
Stringlnsert ["Hello friend!"," my", 6]
Hello my friend!
StringJoin ["Hello"," my "]<>"friend!"
Hello my friend!
StringLength [ "Hello" ]
5
StringPosition[ "Hello my friend! ", "e"]
{{2, 2}, {13, 13}}
StringReplace["Hilo" , "i"->"el"]
Hello
StringReverse [ "Hello ! " ]
!olleH
StringTakef "Hello my friend!", 6]
Hello
StringTake[ "Hello my friend!", -8]
friend!
StringTake [ "Hello my friend ! " , { 7 , 9 } ]
my
Отметим еще несколько функций, относящихся к работе с символами и строками:
FromCharacterCode [n] — возвращает строку, состоящую из одного символа с кодом n;
FromCharacterCode [ {n1, n2,...}] — возвращает строку, состоящую из последовательности символов с кодами ni;
Characters ["string"] — возвращает список целочисленных кодов, соответствующих символам строки "string";
ToLowerCase ["string"] — производит строку, в которой все буквы преобразованы в нижний регистр;
ToString [expr] — возвращает строку, соответствующую форме вывода выражения ехрг. Опции устанавливают ширину линии, тип формата и т. д.;
ToUpperCase [ "string" ] — вырабатывает строку, в которой все буквы преобразованы в верхний регистр;
Unique [ ] — создает новый символ с именем в форме $nnn (nnn — уникальный порядковый номер);
Unique [х] — создает новый символ с именем в форме x$nnn (nnn — уникальный порядковый номер);
Unique [ {х, у,...}]— создает список новых символов с уникальными именами;
Unique [ "ххх" ] — создает новый символ с именем в форме xxxnnn (nnn — уникальный порядковый номер);
Unique [name, {attrl, attr2,...}] — создает символ с указанными атрибутами attri;
UpperCaseQ [string] — возвращает True, если все символы строки string являются прописными буквами (верхнего регистра), иначе возвращает False.
Примеры, приведенные ниже, показывают работу с этими функциями.