Erlangでは、印刷可能な文字のリスト、その文字列がある場合は文字列ですが、文字列も項目のリストであり、リストのすべての機能を文字列に適用できます。理想的には、データ構造体:stringはerlangに存在しません。
私のコードの一部は、何かがリストだけでなく文字列でもあることを確認する必要があります。 (実際の文字列)。それはリストを別々にする必要があります。 [1,2,3,a,b,"josh"]
、文字列から。 "Muzaaya"
。ガード式is_list/1
は、文字列とリストの両方についてtrue
と表示されます。
などのようなガードがないので、コードスニペットでデータが文字列であることを確認する必要があります。この場合の文字列は、印刷可能なもの(アルファベット、両方とも大文字、小文字)のみのリストであり、例えば、is_string/1
"Muzaaya2536 618 Joshua"
のような数字を含むことができる。私は私をチェックし、その変数が単なるリストではなく文字列であることを確認するコードスニペット(Erlang)が必要です。おかげは、Erlangのリストと文字列を区別する
答えて
あなたは参考にすることができ、モジュールio_lib
に2つの機能があります。引数はそれぞれ印刷可能latin1のまたはユニコード文字のリストである場合io_lib:printable_list/1
とio_lib:printable_unicode_list/1
テストを。
ありがとう@rvirding、これはもっと標準的な解決策です! –
印刷可能な文字のisprintは(3)の定義を使用して -
isprint(X) when X >= 32, X < 127 -> true;
isprint(_) -> false.
is_string(List) when is_list(List) -> lists:all(fun isprint/1, List);
is_string(_) -> false.
あなたがが、ガードとしてそれを使用することはできません。
thanks @ butter71、これは非常にうまくいきます! –
これはLatin1文字セットで機能しますが、Unicode文字コードを拒否することに注意することが重要です。 – goncalotomas
- 1. 文字列と文字列の区別方法は?
- 2. Erlangの文字列リストの連結
- 3. Java配列の大文字と小文字を区別する
- 4. javascriptは文字列の大文字と小文字を区別する
- 5. 大文字と小文字を区別しないリスト
- 6. マッチング大文字と小文字を区別Unicode文字列
- 7. バイナリリストから文字列リスト - Erlang
- 8. アプリケーションの文字列と文字列の区別
- 9. SimpleXMLを列挙大文字と小文字の区別
- 10. 私は特定の文字列[大文字と小文字を区別]
- 11. Prolog:番号と文字リストを区別する
- 12. 大文字と小文字の区別
- 13. Haskellは、文字列のリストを、区切り文字 "|"
- 14. 文字列配列のソートと大文字小文字の区別
- 15. 日付と文字列を区別する方法は?
- 16. リスト内の文字列を検索する - Erlang
- 17. 大文字と小文字を区別するフィルタは、レルム
- 18. MVC 3のGUIDと文字列のパラメータを区別する
- 19. perlの文字列と数値の引数を区別する
- 20. Erlangリストから文字列を取得する方法
- 21. DataView:上の文字列とそれらを区別する?
- 22. 文字列で文字列を検索する、大文字と小文字を区別しない
- 23. 文字と文字列を文字列から区別する方法はありますか
- 24. 大文字と小文字を区別しないstd ::文字列のセット
- 25. 大文字と小文字を区別しない文字列の比較C++
- 26. スパーク:大文字と小文字が区別partitionBy列
- 27. リストをerlangの文字列に変換してフォーマットします
- 28. 大文字と小文字の区別から大文字小文字を区別しないものへ
- 29. 文字列とバイト配列を区別しますか?
- 30. MySQLの大文字と小文字を区別するクエリ
も参照してください。http://stackoverflow.com/questions/2479713/determining-if-an-item-is-a-string-or-a-list-in-erlang – legoscia