У меня есть номер кредитной карты, скажем, 5940043543536. А в целях безопасности я хочу отображать только первые четыре цифры.
Как это сделать в эрланге?
более новые версии Erlang имеют встроенные строковые функции.Для вашего случая
1> string:slice("123455678901234", 1, 4). "1234"
есть также функция string: substring, которая работает аналогичным образом, но для слайса она не рекомендуется.
В случае, если вы получаете двоичный файл (вместо строки)
binary:part(<<"123455678901234">>, 1, 4). <<"2345">>
или если вам нужно получить последние четыре цифры
binary:part(<<"123455678901234">>, {byte_size(<<"123455678901234">>), -4}). <<"1234">>
Строка в Erlang - это просто список целых чисел, поэтому вы можете использовать lists:sublist/3:
lists:sublist/3
1> String = "5940043543536". "5940043543536" 2> lists:sublist(String, 1, 4). "5940"
Обратите внимание, что аргумент позиции начинается с 1, а не 0.
1
0