2016-03-06 46 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