用語が混乱しています。任意の言語の文字列は、人間が読める文字に対応する整数値のシーケンスです。値の表現がバイナリであるかリストであるかは関係ありませんが、データが含まれているため、どちらも技術的には文字列です。
そうは言っても、最初の一連の命令でバイナリ文字列をリスト文字列に変換しました。リストをバイナリに変換するには、を呼び出すerlang:list_to_binary/1
かerlang:iolist_to_binary/1
、リストがフラットでない場合に呼び出すことができます。例えば:
BinString = <<"this\nis\na\nstring">>.
ListString = "this\nis\na\nstring" = binary_to_list(BinString).
Words = ["this", "is", "a", "string"] = string:tokens(ListString, "\n").
<<"thisisastring">> = iolist_to_binary(Words).
Rejoined = "this\r\nis\r\na\r\nstring" = string:join(Words, "\r\n").
BinAgain = <<"this\r\nis\r\na\r\nstring">> = list_to_binary(Rejoined).
参考までに、string
モジュールは常にstring:join
フラットリスト(たとえば、「this is a string」を期待しますが、["this"、 "is"、 "a"、 "string"]は期待しません)。フラットストリング。