此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.1)

2.8.13 字符串, 单元和表达式的转换

字符串、单元和表达式之间的转换

一个简单表达式

按字符串形式给出这个表达式的 InputForm

FullForm 中字符串两边用了引号

Out[3]//FullForm=

这里给出对应于该表达式的 StandardForm 形式式的单元的字符串表示

Out[4]//FullForm=

ToBoxes 产生单元本身

在产生文件数据或外部程序时,有时需要仅用键盘符号产生二维形式, 这可以用 OutputForm 来实现.

这里仅用键盘字符产生了一个字符串,它给出这个表达式的二维形式

这个字符串有两行, \n 明确分行

Out[7]//FullForm=

这个字符串仅含一种字形

Out[8]//DisplayForm=

如果仅对一维结构进行操作,可以通过 ToString 利用格式函数 进行字符串操作.

这里产生了一个对应于 StringFormOutForm 的字符串

Out[9]//InputForm=

由 ToExpression 处理的一些形式

InputForm 字符串产生一个表达式

SuperscriptBox 单元产生相同的表达式

这里单元由 InputForm 表示出来

这里返回最初的单元

此处解释了这个单元

TraditionalForm , 这些被解释为函数

产生由特殊头部封装的表达式

这里产生一个表达式,然后立即计算它

StandardForm 规则产生一个表达式,然后将它封装在 Hold

ReleaseHold 可以去掉 Hold

测试输出字符串的正确性

ToExpression 将试图将每个字符串解释为 Mathematica 输入,但当所给 的字符串不能对应于一个语法正确的输入时,它就显示一个信息, 并返回 $Failed.

这里不是一个语法正确的输入,所以 ToExpression 就无法将它转化为一个表达式

ToExpression 要求字符串对应于一个完全的 Mathematica 表达式

用函数 SyntaxQ 能测试一个字符串是否对应于一个语法正确的 Mathematica 输入. 当 SyntaxQ 返回 False 时,可以用 SyntaxLength 找出错误发生的位置. SyntaxLength 的返回值是字符的数目,它指的是语法错误发生之前的字符数.

SyntaxQ 表明这个字符串不对应语法正确的 Mathematica 输入

SyntaxLength 表明错误发生在第 3 个字符处

这里 SyntaxLength 的返回值是一个大于字符串长度的数,这表明到现在为止输入正确,但需要继续