prolog - 如何在 Prolog 中拆分字符串

标签 prolog string-split

我试图了解用户如何输入一个句子然后在 Prolog 中拆分成单独的单词。 例如, 用户输入这句话:“计算机由硬件组成” 我想把这句话分成:“computer”、“consists”、“of”和“hardware”

有人可以解释一下用户如何输入句子然后在 Prolog 中拆分它吗?

最佳答案

Swi-Prolog 有一个内置的谓词,这使得这很容易:

?- split_string("computer consists of hardware", "\s", "\s", L).
L = ["computer", "consists", "of", "hardware"].

据我所知,split_string(+String, +SepChars, +PadChars, -SubStrings) 中的第三个参数 +PadChars 会修剪周围的空格。

例如,在此示例中添加前导空格和尾随空格并将 +PadChars 设置为空字符串会产生:

?- split_string(" computer consists of hardware ", "\s", "", L).
L = ["", "computer", "consists", "of", "hardware", ""].

而将 PadChars 设置为“\s”会产生:

?- split_string(" computer consists of hardware ", "\s", "\s", L).
L = ["computer", "consists", "of", "hardware"].

但我不完全清楚 +PadChars 是否还有其他用途。任何人都知道任何很好的例子来澄清它吗?

关于prolog - 如何在 Prolog 中拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34532662/

相关文章:

prolog - 使用 prolog 将结果打印在 txt 文件中

prolog - 变量列表中的变量出现

prolog - 如何在Prolog中实现 "I am my own Grandpa"?

split - 从字符串中提取最后一个单词

prolog - 在我的情况下,哪个序言实现会有所帮助

while-loop - 如何在条件不变的情况下在Prolog中模拟while循环?

java - String.split() 方法 - 返回的字符串数组中标记的顺序

python - 为什么 str.split 不接受关键字参数?

包含反斜杠的多行字符串的 Python 3.5 分割线

c# - 用换行符将字符串拆分成多个字符串?