如何将单个字符转换为Scala的Char对象?

时间:2013-06-17 19:09:09

标签: scala char type-conversion character arrays

将单个字符转换为 Scala 字符对象的最简单,最简洁的方法是什么?

我找到了以下解决方案,但不知怎的,这似乎让我感到不满意,因为我认为应该可以在更优雅的 Scala 中解决这个问题而不使用不必要的转换和数组特定的操作:

scala> "A".toCharArray.head
res0: Char = A

2 个答案:

答案 0 :(得分:16)

有很多方法可以做到这一点。以下是一些:

'A'               // Why not just write a char to begin with?

"A"(0)            // Think of "A" like an array--this is fast
"A".charAt(0)     // This is what you'd do in Java--also fast

"A".head          // Think of "A" like a list--a little slower
"A".headOption    // Produces Option[Char], useful if the string might be empty

如果你使用Scala很多,.head版本是最干净,最清晰的;没有杂乱的东西,数字可能会被一个或一个必须考虑的事情。但是如果你真的需要这么做,那么head会运行一个必须打包char的通用接口,而.charAt(0)(0)则不会,所以后者大约快3倍

答案 1 :(得分:2)

您可以使用scala的charAt

scala> var a = "this"
a: String = this

scala> a.charAt(0)
res3: Char = t

此外,以下内容有效,可能正是您所寻找的内容:

scala> "a".charAt(0)
res4: Char = a