如何在Elixir中找出整个字符串是否为大写?
我找到了解决方案here。但它一次只能处理一个字母而不是整个字符串。
答案 0 :(得分:18)
您可以将字符串转换为大写,并检查它是否等于原始字符串:
iex(1)> upcase? = fn x -> x == String.upcase(x) end
#Function<6.99386804/1 in :erl_eval.expr/5>
iex(2)> upcase?.("foo")
false
iex(3)> upcase?.("FOO")
true
iex(4)> upcase?.("π")
false
iex(5)> upcase?.("Π")
true
答案 1 :(得分:1)
您可以使用正则表达式:
iex> str = "Hello World"
iex> str =~ ~r(^[^a-z]*$)
false
iex> str = "HELLO WORLD"
iex> str =~ ~r(^[^a-z]*$)
true