2016-03-06 44 views
0

我已经设置元音:检查字符属于集合

val vowels = immutable.Set("A", "E", "I", "O", "U", "Y", "a", "e", "o", "u", "y") 

而且我有一组字。而且我需要检查来自set的第一个字母是否属于元音。

+1

尝试使用'vowels.contains(w.head)'('w'作为你的一个单词) – mfirry

+1

'head'不应该被使用 - 它是部分的:'scala>“。”头文件 java.util。 NoSuchElementException:下一个空迭代器 –

回答

2

假设词是字串:

 vowels(word.head) 

将返回一个布尔值。并根据使用情况,你可以做这样的事情:

words.map(vowels(_.head)) 
    words.filter(vowels(_.head)) 
2

要检查一个字:

scala> vowels.contains("foo".head.toString) 
res2: Boolean = false 

scala> vowels.contains("oops".head.toString) 
res3: Boolean = true 

要检查单词的List

scala> val words = List("foo", "bar", "ate", "elf", "baz") 
words: List[String] = List(foo, bar, ate, elf, baz) 

scala> words.map(w => vowels.contains(w.head.toString)) 
res8: List[Boolean] = List(false, false, true, true, false) 

您也可以定义vowels作为Char然后在您的测试中使用toLower

scala> val vowels = Set('a', 'e', 'i', 'o', 'u') 
vowels: scala.collection.immutable.Set[Char] = Set(e, u, a, i, o) 

scala> vowels.contains("Oops".head.toLower) 
res18: Boolean = true