简介
编辑形式理论
编辑形式上,字符串是有限的、有序的字符序列,例如字母、数字或空格。空字符串是序列长度为零的特殊情况,因此字符串中没有符号。只有一个空字符串,因为两个字符串只有在长度不同或符号序列不同时才是不同的。在形式上 处理,空字符串用 ε 表示,有时用 Λ 或 λ 表示。
空字符串不应与空语言 ∅ 混淆,后者是一种形式语言(即一组字符串),不包含任何字符串,甚至不包含空字符串。
空字符串有几个属性:
- |ε| = 0。其字符串长度为零。
- ε ⋅ s = s ⋅ ε = s。空字符串是串联操作的标识元素。所有字符串的集合形成一个关于 ⋅ 和 ε 的自由幺半群。
- εR = ε。空字符串的反转产生空字符串。
- 空字符串在字典序中位于任何其他字符串之前,因为它是所有字符串中最短的。
在上下文无关文法中,允许符号产生空字符串的产生式规则称为 ε-产生式,并且该符号被称为可为空的。
在编程语言中的使用
编辑在大多数编程语言中,字符串是一种数据类型。字符串通常存储在不同的内存地址(位置)。因此,相同的字符串(例如,空字符串)可能存储在内存中的两个或多个位置。
这样一来,内存中就可以有多个空串,而不像形式理论定义那样只有一个可能的空串。但是,字符串比较函数会指示所有这些空字符串彼此相等。
即使是长度为零的字符串也可能需要内存来存储它,具体取决于所使用的格式。在大多数编程语言中,空字符串与空引用(或空指针)不同,因为空引用根本不指向任何字符串,甚至不指向空字符串。空字符串是合法的字符串,大多数字符串操作应该工作。某些语言以类似的方式处理以下部分或全部:空字符串、空引用、整数 0、浮点数 0、布尔值 false、ASCII 字符 NUL 或其他此类值。
空字符串通常与其他字符串类似地表示。在使用字符串终止字符(空终止字符串或纯文本行)的实现中,空字符串由立即使用该终止字符指示。
空字符串的例子
空字符串是位置表示法(在任何基数中)零的句法有效表示,不包含前导零。由于空字符串在形式语言理论之外没有标准的视觉表示,因此数字零传统上由单个十进制数字 0 表示。
零填充内存区域,被解释为以 null 结尾的字符串,是一个空字符串。
空文本行显示空字符串。这可能发生在两个连续的 EOL 中,这在文本文件中经常发生,有时在文本处理中用于分隔段落,例如 在 MediaWiki 中。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/193764/