Goal Link to heading

"1234567890" -> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

Code Link to heading

Using codepoints Link to heading

ExUnit.start()

defmodule StringToIntegerList do
  use ExUnit.Case, async: true

  # https://hexdocs.pm/elixir/1.16.0/String.html#codepoints/1
  def string_to_integer_list_using_codepoints(string) do
    string
    |> String.codepoints()
    |> Enum.map(&String.to_integer/1)
  end

  test "string_to_integer_list_using_codepoints" do
    assert string_to_integer_list_using_codepoints("12345678910") == [
             1,
             2,
             3,
             4,
             5,
             6,
             7,
             8,
             9,
             1,
             0
           ]
  end
end

Using to_charlist Link to heading

ExUnit.start()

defmodule StringToIntegerList do
  use ExUnit.Case, async: true

  # https://hexdocs.pm/elixir/1.16.0/String.html#to_charlist/1
  def string_to_integer_list_using_charlist(string) do
    string
    |> to_charlist()
    |> Enum.map(&(&1 - ?0))
  end

  test "string_to_integer_list_using_charlist" do
    assert string_to_integer_list_using_charlist("12345678910") == [
             1,
             2,
             3,
             4,
             5,
             6,
             7,
             8,
             9,
             1,
             0
           ]
  end
end