22

Kotlin で aCharを a の先頭に追加するにはどうすればよい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 で(eg )を呼び出そうとするとplus、右側に String を受け入れるバージョンがないため、'H' + "ello World"コンパイルされません。

最初の回避策で十分かもしれませんが、Javaで機能するものからの回帰です:(String test = 'H' + "ello World";コンパイルは正常に...)

また、最後の回避策も好きではありません。少なくともjava.lang.String、単一の文字を受け入れるコンストラクターがあるか、使用できますjava.lang.Character.toString(char c)。Kotlinでそうするためのエレガントな方法はありますか?

これは以前に議論されましたか ( plus(str:String)Char オブジェクトにオーバーロードを追加しますか?)

4

2 に答える 2

46

次のような文字列テンプレートの使用についてはどうでしょうか。

val prepended = "$char$string"
于 2013-12-29T04:19:16.873 に答える