字符串、框符和表达式之间的转换
| ToString[expr,form] | 创建一个字符串,表示 expr 的指定文本形式 |
| ToBoxes[expr,form] | 创建一个框符,表示 expr 的指定文本形式 |
| ToExpression[input,form] | 通过将一个字符串或框件解释为指定文本形式的输入创建一个表达式 |
| ToString[expr] | 使用 OutputForm 创建一个字符串 |
| ToBoxes[expr] | 使用 StandardForm 创建一个框符 |
| ToExpression[input] | 使用 StandardForm 创建一个表达式 |
| In[1]:= |
| Out[1]= |
以字符串形式给出表达式的 InputForm.
| In[2]:= |
| Out[2]= |
在 FullForm 中,字符串两边显示引号.
| In[3]:= |
Out[3]//FullForm= | |
给出对应于表达式的 StandardForm 框符的字符串表示.
| In[4]:= |
Out[4]//FullForm= | |
ToBoxes 生成自身的框符.
| In[5]:= |
| Out[5]= |
为文件和外部程序生成数据时,有时需要仅用普通键盘字符产生二维形式. 这可以通过使用 OutputForm 实现.
| In[6]:= |
| Out[6]= |
| In[7]:= |
Out[7]//FullForm= | |
| In[8]:= |
| Out[8]= |
如果仅对一维结构进行操作,可以通过 ToString 利用格式函数进行字符串操作.
| In[9]:= |
Out[9]//InputForm= | |
| InputForm | 对应于键盘输入的字符串 |
| StandardForm | 对应于标准二维输入的字符串或框符(默认) |
| TraditionalForm | 与传统数学记号相似的字符串或框符 |
由 ToExpression 处理的一些形式.
从 InputForm 字符串创建一个表达式.
| In[10]:= |
| Out[10]= |
从 StandardForm 框符创建同一表达式.
| In[11]:= |
| Out[11]= |
按 TraditionalForm,这些被解释为函数.
| In[12]:= |
| Out[12]= |
| ToExpression[input,form,h] | 创建一个表达式,然后由头部 h 封装 |
| In[13]:= |
| Out[13]= |
| In[14]:= |
| Out[14]= |
| In[15]:= |
| Out[15]= |
| SyntaxQ["string"] | 确定一个字符串是否是语法正确的 Mathematica 输入 |
| SyntaxLength["string"] | 测试从字符串开始多长的字符序列在语法上是正确的 |
ToExpression 将试图将每个字符串解释为 Mathematica 输入. 但如果给出的字符串不能对应于一个语法正确的输入时,它就显示一个信息,并返回 $Failed.
这不是一个语法正确的输入,因此 ToExpression 不将其转换成一个表达式.
ToExpression 要求字符串对应于一个完整的 Mathematica 表达式.
可使用函数 SyntaxQ 测试一个特定的字符串是否对应于语法正确的 Mathematica 输入. 如果 SyntaxQ 返回False,可使用 SyntaxLength 找到错误发生的位置. SyntaxLength 的返回值是语法错误发生之前成功运行的字符数.
SyntaxQ 表明这个字符串不对应于语法正确的 Mathematica 输入.
| In[18]:= |
| Out[18]= |
SyntaxLength 表明错误发生在字符串的第三个字符后.
| In[19]:= |
| Out[19]= |
这里 SyntaxLength 返回一个大于字符串长度的值,表明到目前为止输入正确,但需要继续.
| In[20]:= |
| Out[20]= |
