gpt4 book ai didi

prolog - prolog 中的字符串操作

转载 作者:行者123 更新时间:2023-12-02 07:20:58 28 4
gpt4 key购买 nike

前提

所以我试图将给定的字符串分解为字符列表,然后这些字符将被编辑/更改并重新分配到列表中,然后列表将被重建回字符串。

示例:

给定字符串:“ABCDEFG”

字符列表:[A、B、C、D、E、F、G]

操作将列表更改为如下所示:[E,F,G,H,I,J,K](或类似的东西)。

然后被重建为字符串:

"EFGHIJK"

问题

我正在寻找一种访问字符串内部各个元素的方法。如果是 Java,我会使用像 charAt(int i) 这样的命令,但我不知道 prolog 中是否存在这样的命令。

注意

我是一名新的 prolog 程序员,所以我不熟悉大多数 prolog 操作。

感谢您的宝贵时间。

最佳答案

一个字符串,它是一个字符代码列表,而一个原子,嗯,原子,即不可分割,但有 sub_atom/5 访问部分原子数据。

这里是一些字符串示例:

1 ?- L = "ABCDEF".
L = [65, 66, 67, 68, 69, 70].

2 ?- L = "ABCDEF", maplist(succ, L, N), format('~s', [N]).
BCDEFG
L = [65, 66, 67, 68, 69, 70],
N = [66, 67, 68, 69, 70, 71].

3 ?- L = "ABCDEF", maplist(succ, L, N), format('~s', [N]), atom_codes(A, N).
BCDEFG
L = [65, 66, 67, 68, 69, 70],
N = [66, 67, 68, 69, 70, 71],
A = 'BCDEFG'.

如果分析和转换需要细节,那么通常最好使用 DCG

关于prolog - prolog 中的字符串操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13728938/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com