我想从字符串的每个单词中提取特定的字母/字母。
假设字符串是:
val myString = "I want to extract letters form each word of the string"
val splitString = [I, want, to, extract, letters, form, each, word, of, the, string]
现在,如果我想从每个单词中获取a,e,i,o,u(如果单词中包含任何单词),我该怎么办?语法是什么?
答案 0 :(得分:0)
myString.split(" ").toList.map(x => x.replaceAll("[^aeiou]", "")).filter(x => x != "")
首先拆分字符串,转换为列表,并通过替换元音将每个元素映射到新元素。希望这会有所帮助!!
答案 1 :(得分:0)
如果您只想过滤掉元音
val wordsFile = sc.textFile("myFile.txt")
val splitWords = wordsFile.flatMap(line => line.split(" "))
.map(word => word.toLowerCase.replaceAll("[aeiou]", ""))
//res0: Array[String] = Array(, wnt, t, xtrct, lttrs, frm, ch, wrd, f, th, strng)
如果您只想按元音过滤
val wordsFile = sc.textFile("myFile.txt")
val splitWords = wordsFile.flatMap(line => line.split(" "))
.map(word => word.toLowerCase.replaceAll("[^aeiou]", ""))
//res0: Array[String] = Array(i, a, o, ea, ee, o, ea, o, o, e, i)
答案 2 :(得分:0)
def vowels(s: String) = s.toLowerCase.replaceAll("[^aeiou]", "")
myString.trim.split("\\W+").map(vowels)
vowels
函数从单词中提取元音。这可以替换为您需要的任何处理。
trim
删除前导/尾随空格,split
将字符串分成单独的单词,以便标点符号。
map
只会将vowels
应用于每个结果词。