0

私が探しているのは、挿入されたテキストに文字と整数が含まれていて、これらがリストの文字にない場合は 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"]

そして、関数には次のような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"],

次のようなテキストを挿入する場合:

check("you should have 10 point to do this")

テキスト内のすべてのものがリスト内に存在するため、trueを返す必要があります

そして、次のようなテキストを挿入する場合:

check("you should + have ....")

" + " & " . " リスト内に存在しないため、false を返す必要があります。

4

1 に答える 1

7

check最初の例では、にない空白を含む文字列を渡すことに注意してください。Listそのため、それを処理したいと考えています。

これを解決する 1 つの方法を次に示します。

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

Listまず、最初に指定した文字列のリストではなく、文字のリストであることに注意してください。スペース、タブ、改行、ピリオドも追加しましたList

の 2 行目でcheck/1は、リストを1Text文字ずつ説明しています。各文字Cについて、それが のメンバーであることを確認しListます。そのテストがすべての文字に対して true を返す場合は true をlists:all/2返し、それ以外の場合は false を返します。

于 2016-04-01T01:01:09.380 に答える