串接
编辑在形式语言理论和计算机程序设计中,字符串连接是将字符串首尾相接的操作。 例如,雪和球的串联是雪球。 在串联理论(也称为弦理论)的某些形式化中,弦串联是一个原始概念。
语法
编辑在许多编程语言中,字符串连接是一个二元中缀运算符。 +(加号)运算符经常被重载以表示字符串参数的连接:Hello, + World 的值为 Hello, World。 在其他语言中,有一个单独的运算符,专门用于指定到字符串的隐式类型转换,而不是泛型加号的更复杂行为。 例子包括。 在爱丁堡 IMP、Perl 和 PHP 中,.. 在 Lua 中,以及 & 在 Ada、AppleScript 和 Visual Basic 中。 存在其他语法,例如 || 在 PL/I 和 Oracle 数据库 SQL 中。
在一些语言中,特别是 C、C++ 和 Python,存在字符串文字连接,这意味着相邻的字符串文字被连接起来,没有任何运算符:Hello, World 的值为 Hello, World。 在其他语言中,字符串文字与运算符的连接在编译时通过常量折叠进行评估,尽管这通常是编译器的实现细节,而不是语言功能。
实施
编辑在编程中,字符串连接通常发生在运行时,因为字符串值通常直到运行时才知道。 但是,对于字符串文字,这些值在编译时已知,因此可以在编译时通过字符串文字连接或常量折叠来完成字符串连接。
串接字符串集
编辑在形式语言理论和模式匹配(包括正则表达式)中,字符串的连接操作被概括为字符串集合的操作,如下所示:
对于两组字符串 S1 和 S2,串联 S1S2 由形式为 vw 的所有字符串组成,其中 v 是来自 S1 的字符串,w 是来自 S2 的字符串,或者形式为 S1S2 = { vw : v ∈ S1, w ∈ S2 } . 许多作者还使用字符串集和单个字符串的串联,反之亦然,它们类似地定义为 S1w = { vw : v ∈ S1 } 和 vS2 = { vw : w ∈ S2 }。 在这些定义中,字符串 vw 是介绍部分中定义的字符串 v 和 w 的普通串联。
例如,如果 F = { a, b, c, d, e, f, g, h },且 R = { 1, 2, 3, 4, 5, 6, 7, 8 },则 FR 表示集合 代数符号中所有棋盘坐标的集合,而 eR 表示国王文件的所有坐标的集合。
在这种情况下,字符串集通常被称为形式语言。 串联运算符通常表示为简单的并置(与乘法一样)。
代数性质
编辑字母表上的字符串,通过连接操作,形成一个联合代数结构,其身份元素为空字符串——一个自由幺半群。
具有串联和交替的字符串集形成一个半环,串联 (*) 分布在交替 (+) 上; 0 是空集,1 是仅包含空字符串的集。
应用
编辑音频/电话
在电话编程中,串联用于向用户提供动态音频反馈。 例如,在时钟时钟中,连接用于通过播放连接在一起的适当录音来给出正确的时间。
录音本身是分开存在的,但是一个接一个地播放它们可以为听众提供一个语法正确的句子。
此技术还用于号码变更通知、语音邮件系统或大多数向呼叫者提供动态反馈的电话应用程序(例如 moviefone、tellme 等)。
任何类型的计算机化公共广播系统的编程也可以为动态公共广播(例如,机场的航班)使用串联。 该系统会将数字、路线或航空公司、目的地、时间等的录制语音存档,并以特定顺序播放它们,以生成语法正确的句子,并在整个设施中公布。
数据库理论
关系数据库设计的原则之一是数据表的字段应该反映表主题的单一特征,这意味着它们不应该包含连接的字符串。 当报告中需要串联时,应在运行报告时提供。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/193770/