Bootstrap

Строки в Elixir (String)

Строки в Elixir (String)

? Модуль `String`

ФункцияНазначениеПример
String.length/1Кол-во символов (грейфем)String.length("Привет") #=> 6
String.codepoints/1Кодпоинты UnicodeString.codepoints("é") #=> ["é"]
String.graphemes/1Визуальные символыString.graphemes("??") #=> ["??"]
String.at/2Символ по индексуString.at("abc", 1) #=> "b"
String.slice/2ПодстрокаString.slice("hello", 1..3) #=> "ell"
String.first/1Первый символString.first("abc") #=> "a"
String.last/1Последний символString.last("abc") #=> "c"
String.split_at/2Разделить по индексуString.split_at("hello", 2) #=> {"he", "llo"}
String.duplicate/2Повторить строкуString.duplicate("ha", 3) #=> "hahaha"
String.pad_leading/3Дополнить слеваString.pad_leading("42", 5, "0") #=> "00042"
String.pad_trailing/3Дополнить справаString.pad_trailing("cat", 5, ".") #=> "cat.."
String.upcase/1В верхний регистрString.upcase("abc") #=> "ABC"
String.downcase/1В нижний регистрString.downcase("ABC") #=> "abc"
String.capitalize/1Первая буква — заглавнаяString.capitalize("эликсир") #=> "Эликсир"
String.normalize/2Нормализация UnicodeString.normalize("é", :nfd)
String.starts_with?/2Начинается сString.starts_with?("elixir", "eli") #=> true
String.ends_with?/2Заканчивается наString.ends_with?("elixir", "ir") #=> true
String.contains?/2СодержитString.contains?("banana", "na") #=> true
String.equivalent?/2Unicode-эквивалентностьString.equivalent?("é", "é") #=> true
String.match?/2Проверка по regexString.match?("abc", ~r/a.c/) #=> true
String.split/2Разделить строкуString.split("a,b,c", ",") #=> ["a","b","c"]
String.replace/3ЗаменаString.replace("foo", "o", "0") #=> "f00"
String.replace_leading/3Замена началаString.replace_leading("hello", "he", "yo") #=> "yollo"
String.replace_trailing/3Замена концаString.replace_trailing("test.txt", ".txt", ".md")
String.trim/1Удалить пробелыString.trim(" hi ") #=> "hi"
String.trim_leading/1СлеваString.trim_leading(" hi") #=> "hi"
String.trim_trailing/1СправаString.trim_trailing("hi ") #=> "hi"
String.to_charlist/1В список кодовString.to_charlist("abc") #=> 'abc'
String.to_integer/1В числоString.to_integer("42") #=> 42
String.to_integer/2С основаниемString.to_integer("ff", 16) #=> 255
String.to_float/1В floatString.to_float("3.14") #=> 3.14
String.to_atom/1В атом ⚠️String.to_atom("ok") #=> :ok
String.to_existing_atom/1В существующий атомString.to_existing_atom("ok")
String.valid?/1Проверить UTF-8String.valid?("abc") #=> true
String.printable?/1Проверить выводимостьString.printable?("abc") #=> true
String.replace_prefix/3Заменить префиксString.replace_prefix("foobar", "foo", "bar") #=> "barbar"
String.replace_suffix/3Заменить суффиксString.replace_suffix("hello.ex", ".ex", ".exs")
String.jaro_distance/2Сходство строкString.jaro_distance("dwayne", "duane") #=> 0.822
String.bag_distance/2Ещё одна метрика сходстваString.bag_distance("foo", "of") #=> 0.5

? `StringIO`

ФункцияНазначениеПример
StringIO.open/1Создать IO из строки{:ok, pid} = StringIO.open("data")
StringIO.contents/1Прочитать содержимоеStringIO.contents(pid)
StringIO.flush/1Очистить буферStringIO.flush(pid)

? `Regex`

ФункцияНазначениеПример
Regex.compile/1Скомпилировать шаблон{:ok, re} = Regex.compile("foo")
Regex.match?/2ПроверкаRegex.match?(~r/foo/, "foobar")
Regex.run/2Первое совпадениеRegex.run(~r/d+/, "abc123") #=> ["123"]
Regex.scan/2Все совпаденияRegex.scan(~r/w+/, "a b c")
Regex.replace/3ЗаменаRegex.replace(~r/d+/, "abc123", "#")
Regex.split/2РазделениеRegex.split(~r/s+/, "a b c")

⚙️ `Base`

ФункцияНазначениеПример
Base.encode16/1В hexBase.encode16("Hi") #=> "4869"
Base.decode16/1Из hexBase.decode16("4869") #=> {:ok, "Hi"}
Base.encode64/1В base64Base.encode64("Hi") #=> "SGk="
Base.decode64/1Из base64Base.decode64("SGk=") #=> {:ok, "Hi"}
Base.url_encode64/1URL-safeBase.url_encode64("Hi!")

? `Path`

ФункцияНазначениеПример
Path.join/2Объединить частиPath.join("a","b") #=> "a/b"
Path.split/1Разбить путьPath.split("/usr/bin") #=> ["/","usr","bin"]
Path.basename/1Имя файлаPath.basename("/tmp/test.txt") #=> "test.txt"
Path.dirname/1КаталогPath.dirname("/tmp/test.txt") #=> "/tmp"
Path.extname/1РасширениеPath.extname("a.txt") #=> ".txt"
Path.expand/1Абсолютный путьPath.expand("~/file")
Path.relative_to/2Относительный путьPath.relative_to("/usr/bin", "/usr") #=> "bin"

? `:unicode` (Erlang)

ФункцияНазначениеПример
:unicode.characters_to_binary/1Кодировка:unicode.characters_to_binary('abc')
:unicode.characters_to_list/1В charlist:unicode.characters_to_list("abc")
:unicode.characters_to_nfc_binary/1Нормализовать NFC:unicode.characters_to_nfc_binary("é")

? `IO` и `Kernel`

ФункцияНазначениеПример
IO.puts/1Вывод сIO.puts("Hello")
IO.write/1БезIO.write("Hi")
IO.inspect/1ОтладкаIO.inspect("ok")
Kernel.to_string/1В строкуto_string(:atom) #=> "atom"
<>/2Конкатенация"foo" <> "bar" #=> "foobar"
Enum.join/2Соединить список строкEnum.join(["a","b","c"], "-") #=> "a-b-c"

Копирование материалов разрешается только с указанием автора Roman Sakhno и индексируемой прямой ссылкой на сайт (http://itdid.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/sahroman.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/sahroman.

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как настроить свой компьютер

  2. Текстовая ссылка:

    Она выглядит вот так: Как настроить свой компьютер

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

крипто-донат, на развитие сайта itdid.ru:

В новом окне с терминалом itdid.ru, введите любую сумму: