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

2.11.10 搜索和读入字符串

Read Find 等函数在大部分情况下被用来处理外部文件中的文本或数据. 有时会感到用这些函数来处理 Mathematica 中的字符串是方便的. 这可以 用函数 StringToStream 来进行,它打开一个从 Mathematica 字符串中取字符输入流, 而不是从外部文件取字符的输入流.

按输入流处理字符串

打开一个从字符串读入的输入流

这里从该字符串读第一个词

读这个字符串其余的词

关闭这个输入流

字符串输入流的做法与文件输入流相同. 任何时刻在流中有一个当前点, 当使用 Read 等函数时,当前点向前移动. 当前点由 StreamPosition[stream] 给出, 它是从该字符串开始算起的字节数. 可以直接用 SetStreamPosition[stream, n] 来设置当前点的位置.

这是一个与字符串有关的输入流

从字符串开始算起,当前位置是第 0 字节

这里从该流读入一个数字

从字符串开始算起,当前位置是第 3 字节

这里将当前位置设置为 1

现在从该字符串读一个数时,得到的是 23,它是 123 的一部分

这里将当前点设置到字符串末尾

现在从该字符串读时,得到的总是 EndOfFile

关闭这个流

在处理特别大的文本数据时,通常是将相当多的字符串读入 Mathematica,然后使用 StringToStream 以便在 Mathematica 中对这些字符串进行进一步的处理. 用 StringToStream 产生了一个输入流后,就可以用前面对文件所讨论的函数读和搜索 字符串.

textfile 的全部内容放到一个字符串中

对该字符串打开一个输入流

给出该字符串中包含 is 的文本行

这里将当前点重新设置到字符串开头

这里找出该字符串中第一个 the,并将当前点恰好放在它之后

这里读入 the 之后的一个词

关闭这个输入流