2016-04-01 12 views
0

Was ich suche ist, wenn eingefügter Text enthält Zeichen und integer und wenn diese nicht in List Zeichen return falseErlang: Check Zeichen Text in dem Einfügen, wenn Zeichen in der Liste existieren

Beispiel Liste:

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"] 

Und die Funktion sollte wie 1-Wert haben:

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"], 

wenn das Einfügen Text wie ist:

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

sollte true zurück Cuz alles, was in Text aus der Liste existiert

und wenn das Einfügen Text wie ist:

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

sollte Cuz "+" & return false ". "Existiert nicht in Liste

Antwort

7

Beachten Sie, dass Ihre erste check Beispiel einen String mit Leerzeichen übergibt, die nicht in List ist, so gehe ich davon aus, dass Sie das handhaben wollen

Hier ist ein Weg, dies zu lösen..:

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

Zuerst beachten Sie hier, dass List ist nicht eine Liste von Strings, wie ursprünglich angegeben, aber eine Liste von Zeichen. ich die Leerzeichen, Tabulator, newline und Zeit Zeichen zu List auch hinzugefügt haben

Die zweite Zeile von check/1 durchläuft die Liste Zeichen für Zeichen. Für jedes Zeichen C überprüfen wir, dass es ein Mitglied von List ist. Wenn dieser Test für alle Zeichen den Wert true zurückgibt, gibt lists:all/2 den Wert true zurück, andernfalls wird false zurückgegeben.

+0

danke. arbeiten wie ein Charme. –