Erlang: получить первые n символов строки - PullRequest
0 голосов
/ 22 мая 2018

У меня есть номер кредитной карты, скажем, 5940043543536. А в целях безопасности я хочу отображать только первые четыре цифры.

Как это сделать в эрланге?

Ответы [ 3 ]

0 голосов
/ 23 мая 2018

более новые версии Erlang имеют встроенные строковые функции.Для вашего случая

1> string:slice("123455678901234", 1, 4). 
"1234"

есть также функция string: substring, которая работает аналогичным образом, но для слайса она не рекомендуется.

0 голосов
/ 23 мая 2018

В случае, если вы получаете двоичный файл (вместо строки)

binary:part(<<"123455678901234">>, 1, 4).   
<<"2345">>

или если вам нужно получить последние четыре цифры

binary:part(<<"123455678901234">>, {byte_size(<<"123455678901234">>), -4}).
<<"1234">>
0 голосов
/ 22 мая 2018

Строка в Erlang - это просто список целых чисел, поэтому вы можете использовать lists:sublist/3:

1> String = "5940043543536".
"5940043543536"
2> lists:sublist(String, 1, 4).
"5940"

Обратите внимание, что аргумент позиции начинается с 1, а не 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...