{{Announce|Updated with Version 10:}} Renamed from ''Strings Module'' to ''String Module''. The namespace URI has been updated as well.
This [[Module Library|XQuery Module]] contains functions for string operations and computations.
=Conventions=
All functions and errors in this module and errors are assigned to the <code><nowiki>http://basex.org/modules/string</nowiki></code> namespace, which is statically bound to the {{Code|string}} prefix.<br/>
=FunctionsComputations=
==string:levenshtein==
{| width='100%'
|-valign="top"
| width='120' | '''Signatures'''
|{{Func|string:levenshtein|$string1 as xs:string, $string2 as xs:string|xs:double}}<br/>
|-valign="top"
| '''Summary'''
|Computes the [https://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance Damerau-Levenshtein Distance] for two strings and returns a double value ({{Code|0.0}} - {{Code|1.0}}). The returned value is computed as follows:<br/>
* <code>1.0</code> – distance / max(length of strings)
* <code>1.0</code> is returned if the strings are equal; <code>0.0</code> is returned if the strings are too different.
|-valign="top"
| '''Examples'''
|
{| width='100%'
|-valign="top"
| width='120' | '''Signatures'''
|{{Func|string:soundex|$string as xs:string|xs:string}}<br/>
|-valign="top"
| '''Summary'''
|Computes the [https://en.wikipedia.org/wiki/Soundex Soundex] value for the specified string. The algorithm can be used to find and index English words with similar pronouncation.
|-valign="top"
| '''Examples'''
|
{| width='100%'
|-valign="top"
| width='120' | '''Signatures'''
|{{Func|string:cologne-phonetic|$string as xs:string|xs:string}}<br/>
|-valign="top"
| '''Summary'''
|Computes the [https://de.wikipedia.org/wiki/K%C3%B6lner_Phonetik Kölner Phonetik] value for the specified string. Similar to Soundex, the algorithm is used to find similarly pronounced words, but for the German language. As the first returned digit can be {{Code|0}}, the value is returned as string.
{{Announce|The functions in this section have been adopted from the obsolete Output Module.}}
==string:format==
{| width='100%'
|- valign="top"
| width='120' | '''Signatures'''
|{{Func|string:format|$format as xs:string, $items as item() ...|xs:string}}<br />
|- valign="top"
| '''Summary'''
|Returns a formatted string. The remaining arguments specified by {{Code|$items}} are applied to the {{Code|$format}} string, according to [https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html#syntax Java’s printf syntax].
|- valign="top"
| '''Errors'''
|{{Error|format|#Errors}} The specified format is not valid.
|Returns a single carriage return character ({{Code|&#13;}}).
|}
==string:nl==
{| width='100%'
|- valign="top"
| width='120' | '''Signatures'''
|{{Code|'''string:nl()''' as xs:string}}
|- valign="top"
| '''Summary'''
|Returns a single newline character ({{Code|&#10;}}).
|}
==string:tab==
{| width='100%'
|- valign="top"
| width='120' | '''Signatures'''
|{{Code|'''string:tab()''' as xs:string}}
|- valign="top"
| '''Summary'''
|Returns a single tabulator character ({{Code|&#9;}}).
|}
;Version 10.0
* Updated: Renamed from ''Strings Module'' to ''String Module''. The namespace URI has been updated as well.
* Updated: {{Function||string:format}}, {{Function||string:cr}}, {{Function||string:nl}} and {{Function||string:tab}} adopted from the obsolete Output Module.
The Module was introduced with Version 8.3. Functions were adopted from the obsolete Utility and Output Modules.