java - 如何在 Scala 中获取字符串的最后一个元音及其后面的任何单词?

标签 java string scala dictionary

给定以下 Map("DIAMOND"-> "DAYMAHND", "THOUSAND"-> "THAWZAHND"),我想获取当前 map 中每个项目的值,并使用以下值更新新 map 中的这些值最后一个元音及其后面的所有其他单词作为值,相同的单词作为键。我该如何在 Scala 中做到这一点?我听说有人通过使用 .stripSuffix() 来实现这一点。 ( map 是不可变的)

输入:Map("DIAMOND"-> "DAYMAHND", "THOUSAND"-> "THAWZAHND")

输出:Map("DIAMOND"-> "AHND", "THOUSAND"-> "AHND")

我的尝试:

val table1 = Map("DIAMOND" -> "DAYMAHND", "THOUSAND" -> "THAWZAHND")
val table2 = table1.map { case (key, value) =>
                            val string_2 = value
                                        .reverse
                                        .takeWhile("AEIOU".indexOf(_) == 
                                 -1)
                                (key, string_2 + value.charAt(value.length 
                                - 1 - string_2.length))
                                 }
                                .toMap

最佳答案

table1.mapValues(w => w.drop(w.lastIndexWhere("AEIOU".contains(_))))

关于java - 如何在 Scala 中获取字符串的最后一个元音及其后面的任何单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54685323/

相关文章:

java - 我必须循环接受用户输入,直到输入 "done"

c++ - 带排除项的字符串搜索

scala - 自引用值

Scala 的 future inside yield

java - 多模块项目的基于 Spring MVC 注解的配置

java - Java 中的递减

android - 具有可绘制值的字符串数组到 int 数组

java - 将 "String*"(Scala) 转换为/自 "String..."(Java)

Java Spring : Understanding @Transactional rollbackFor and transaction demarcation

java - java中从数组中删除元素