【问题标题】:How to find out if whole string is upper case in Elixir? [closed]如何确定 Elixir 中的整个字符串是否为大写? [关闭]
【发布时间】:2018-06-13 00:21:35
【问题描述】:

如何在 Elixir 中判断整个字符串是否为大写?

我找到了解决方案here。但它一次只处理一个字母,而不是整个字符串。

【问题讨论】:

  • 不管环境如何,通常你把整个字符串大写看看是否匹配。

标签: regex string elixir uppercase


【解决方案1】:

您可以将字符串转换为大写并检查它是否等于原始字符串:

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

【讨论】:

  • upcase? = &amp; &amp;1 == String.upcase(&amp;1)
  • 这个答案必须被接受为正确答案。
  • 很好地使用 lambda @mudasobwa
  • 我很好奇你为什么要使用 lambda。不批评,只是想了解你的推理。我以defp upcase?(input), do: input == String.upcase(input) 的身份完成了这项工作,我想知道 lambda 有什么好处。
【解决方案2】:

您可以使用正则表达式:

iex> str = "Hello World"
iex> str =~ ~r(^[^a-z]*$)
false

iex> str = "HELLO WORLD"
iex> str =~ ~r(^[^a-z]*$)
true

【讨论】:

  • 请注意,这只适用于 ASCII 字母。 "π" =~ ~r(^[^a-z]*$) #=&gt; trueπΠ 的小写。
  • 这为我解决了,谢谢!
猜你喜欢
  • 2011-08-10
  • 2018-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-06
  • 2013-05-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多