我想使用序言将数字分成列表数字
like :
if number is "345"
separate to [3, 4, 5]
我怎样才能做到这一点 ?
stringTokenizer("", []) :- !.
stringTokenizer(Sen, [H|T]) :-
frontToken(Sen, Token, Remd), H = Token, stringTokenizer(Remd, T).
我正在使用此谓词将字符串转换为字符串列表
我想使用序言将数字分成列表数字
like :
if number is "345"
separate to [3, 4, 5]
我怎样才能做到这一点 ?
stringTokenizer("", []) :- !.
stringTokenizer(Sen, [H|T]) :-
frontToken(Sen, Token, Remd), H = Token, stringTokenizer(Remd, T).
我正在使用此谓词将字符串转换为字符串列表
由于没有明确的答案,您可以使用字符串是 ascii 整数列表这一事实来简化这一点,正如@RayToal 所建议的那样。只需确保字符串中的所有字符实际上都是整数。
stringTokenizer([], []).
stringTokenizer([N|Ns], [Digit|Rest]):-
48 =< N, N =< 57,
Digit is N - 48,
stringTokenizer(Ns, Rest).
你的例子:
?- stringTokenizer("345", List).
List = [3, 4, 5].