在Kotlin中,如何将Char
前置到String
?
例如:
fun main(args: Array<String>) {
val char = 'H'
val string = "ello World"
val appendingWorks = string + char //but not what I want...
//val prependingFails = char + string //no .plus(str:String) version
val prependingWorkaround1 = char.toString() + string
val prependingWorkaround2 = "" + char + string
val prependingWorkaround3 = String(charArray(char)) + string
}
当尝试在Char上调用+
(例如plus
)时,右侧没有接受String的版本,因此'H' + "ello World"
无法编译
第一个变通方法可能已经足够好了,但对我来说,它是对Java工作的一个回归:String test = 'H' + "ello World";
(编译良好...)
我也不喜欢最后一种解决方法,至少在java.lang.String
中我有一个接受单个字符的构造函数,或者我可以使用java.lang.Character.toString(char c)
。
之前是否讨论过这一点(向Char对象添加plus(str:String)
重载?)
3条答案
按热度按时间zhte4eai1#
使用字符串模板怎么样,如下所示:
idfiyjo82#
从Kotlin1.5开始,在
Char
上定义了一个extensionplus
operator
函数,它可以用来将一个Char
与给定的String
连接起来。edqdpe6u3#
如果您想只使用对字符串的方法调用来真正地为该字符串添加前缀,可以执行以下操作:
如果str是一个大型复杂的方法调用链,这种方法会很有用: