我正在将一些Java代码迁移到Kotlin,但我无法将调用迁移到Java的String构造函数(char[], int, int)
,因为它在Kotlin中不可用。
似乎只有(char[])
构造函数可用。我该如何克服这个问题?
P.S。我通过写(java.lang.String(buf, 0, i) as String)
来解决这个问题,似乎java.lang.String
和kotlin.String
不同。但它看起来并不那么好。
答案 0 :(得分:1)
如果你有来自java的char数组,例如
public class Test {
public static char[] chars = {'a','b','c','d'};
}
并且您希望以(char[], int, int)
然后你可以这样做。
var a = Test.chars.slice(0..i).toString()
这将采用你的char数组,将其切换到0到i的范围,然后将其作为字符串。
然后你可以将它包装在一个函数中然后你去吧
答案 1 :(得分:0)
您可以直接使用构造函数。这在Kotlin中有效:
val s = String(byteArrayOf(65,66,67,68,69), 0, 3)