Erlang:如果列表中存在字符,请检查插入文本中的字符

Mr.*_*ero 0 erlang erl

我正在寻找的是,如果插入的文本包含字符和整数,如果这些不在List字符中返回false

示例列表:

List = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
Run Code Online (Sandbox Code Playgroud)

而且函数应该有1个值,如:

check(Text) ->
    List = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"],
Run Code Online (Sandbox Code Playgroud)

如果插入文本是:

check("you should have 10 point to do this")
Run Code Online (Sandbox Code Playgroud)

应该返回true cuz文本中的每个东西都存在于List中

如果插入文本是:

check("you should + have ....")
Run Code Online (Sandbox Code Playgroud)

应该返回false cuz"+"和"."不存在于List中.

Ste*_*ski 7

请注意,您的第一个check示例传递一个包含空格的字符串,该字符串不在List,所以我假设您要处理它.

这是解决这个问题的一种方法:

check(Text) ->
    List = "1234567890abcdefghijklmnopqrstuvwxyz \t\n.",
    lists:all(fun(C) -> lists:member(C, List) end, Text).
Run Code Online (Sandbox Code Playgroud)

首先,请注意,这里List不是您最初指定的字符串列表,而是字符列表.我还添加了空格,制表符,换行符和句点字符List.

第二行按字符check/1遍历列表Text.对于每个角色,C我们检查它是否是其成员List.如果该测试对所有字符都返回true,则lists:all/2返回true,否则返回false.