diff --git a/lib/elixir/lib/string.ex b/lib/elixir/lib/string.ex index 0408540d451..bde2233f02c 100644 --- a/lib/elixir/lib/string.ex +++ b/lib/elixir/lib/string.ex @@ -966,6 +966,7 @@ defmodule String do def capitalize(string, mode) when is_binary(string) do case :unicode_util.gc(string) do + [gc] -> grapheme_to_binary(:string.titlecase([gc])) [gc, rest] -> grapheme_to_binary(:string.titlecase([gc])) <> downcase(rest, mode) [gc | rest] -> grapheme_to_binary(:string.titlecase([gc])) <> downcase(rest, mode) [] -> "" diff --git a/lib/elixir/test/elixir/string_test.exs b/lib/elixir/test/elixir/string_test.exs index cedec53f383..9339aae765c 100644 --- a/lib/elixir/test/elixir/string_test.exs +++ b/lib/elixir/test/elixir/string_test.exs @@ -254,6 +254,7 @@ defmodule StringTest do test "capitalize/1" do assert String.capitalize("") == "" + assert String.capitalize("1") == "1" assert String.capitalize("abc") == "Abc" assert String.capitalize("ABC") == "Abc" assert String.capitalize("c b a") == "C b a"