for (i <- marker to cursor - 1 ){
if (buffer.charAt(i).isUpper){
buffer.charAt(i).toString.toLowerCase
} else if (buffer.charAt(i).isLower) {
buffer.charAt(i).toString.toUpperCase
}
}
我已经尝试了多种方法来实现,但无法找到解决方案,这就是我所处的位置。在尝试其他方法时,我使用slice
但无法让它为Bool
语句返回if
(转换为字符串,但isUpper对字符串不起作用)。目前,这对字符串没有任何作用,因为上下文标记/光标只是突出显示要反转的句子上的选择。
答案 0 :(得分:1)
这是一个班轮:
val s = "mixedUpperLower"
s.toUpperCase.zip (s).map {case (a, b) => if (a == b) a.toLower else a}.mkString ("")
res3: String = MIXEDuPPERlOWER
也许一个简短的方法更易读:
scala> def invertCase (c: Char) : Char = if (c.isLower) c.toUpper else c.toLower
invertCase: (c: Char)Char
scala> s.map (invertCase)
res4: String = MIXEDuPPERlOWER
答案 1 :(得分:0)
"aBcDef".map(x => if(x.isLower) x.toUpper else x.toLower)
打印
ABCDEF