Il ne faut pas confondre la chaîne vide avec le langage vide ∅ , qui est un langage formel (c'est-à-dire un ensemble de chaînes) qui ne contient aucune chaîne, pas même la chaîne vide.
La chaîne vide possède plusieurs propriétés :
- |ε| = 0. Sa longueur de chaîne est nulle.
- ε ⋅ s = s ⋅ ε = s. La chaîne vide est l' élément neutre de la concaténation . L'ensemble de toutes les chaînes forme un monoïde libre par rapport à ⋅ et ε.
- ε R = ε. L'inversion de la chaîne vide produit la chaîne vide, donc la chaîne vide est un palindrome .
- La chaîne vide précède toute autre chaîne dans l'ordre lexicographique , car c'est la plus courte de toutes les chaînes.
Dans les grammaires hors contexte , une règle de production qui permet à un symbole de produire la chaîne vide est appelée une ε-production, et le symbole est dit « annulable ».
Utilisation dans les langages de programmation
Dans la plupart des langages de programmation , le terme « chaîne de caractères » désigne souvent des instances d'un type de données et constitue donc un concept distinct de celui de la théorie formelle. Ces chaînes sont généralement stockées à des adresses mémoire distinctes et possèdent ainsi une identité. Par conséquent, des représentants d'une même chaîne formelle (par exemple, la chaîne vide) peuvent être stockés à plusieurs endroits en mémoire et ces emplacements peuvent être considérés comme des appellations de la chaîne vide formelle.
Ainsi, plusieurs représentations de la chaîne vide pourraient être présentes en mémoire, contrairement à la définition théorique formelle qui n'admet qu'une seule chaîne vide possible. Cependant, une fonction de comparaison de chaînes indiquerait que toutes ces représentations sont égales.
Même une chaîne de caractères vide peut nécessiter de la mémoire pour être stockée, selon le format utilisé. Dans la plupart des langages de programmation, une chaîne vide se distingue d'une référence nulle (ou pointeur nul) car une référence nulle ne pointe vers aucune chaîne, pas même vers la chaîne vide. La chaîne vide est une chaîne valide, sur laquelle la plupart des opérations sur les chaînes devraient fonctionner. Certains langages traitent de manière similaire les éléments suivants : les chaînes vides, les références nulles, l'entier 0, le nombre à virgule flottante 0, la valeur booléenne ` false` , le caractère ASCII `NUL` , ou d'autres valeurs de ce type.
La chaîne vide est généralement représentée de la même manière que les autres chaînes. Dans les implémentations utilisant un caractère de fin de chaîne ( chaînes terminées par un caractère nul ou lignes de texte brut), la chaîne vide est indiquée par l'utilisation immédiate de ce caractère.
Il existe différentes fonctions, méthodes, macros ou expressions idiomatiques pour vérifier si une chaîne de caractères est vide dans différents langages.
''character(0){'\0'}new String()(de java.lang.Stringou System.String)string()(depuis std::string)s@""NSStringqu'objet constant)[NSString string]NSStringobjet)q(), qq()str()r""u""%{}%()String::new()(de std::string::String) String.Empty(depuis System.String)String.make 0 '-'{}[[]]“”‘’„”‚‘
.byte 0.ascii "".asciz ""
Représentations de la chaîne vide
Une zone mémoire remplie de zéros, interprétée comme une chaîne de caractères terminée par un caractère nul , est une chaîne vide.
Les lignes vides affichent une chaîne vide. Cela peut se produire après deux fins de ligne consécutives , comme c'est souvent le cas dans les fichiers texte . Ce procédé est parfois utilisé en traitement de texte pour séparer les paragraphes , par exemple dans MediaWiki .