我看到Kotlin有ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray,这相当于字节[],短[],int[],char[],双[],浮动[]在Java中。

现在我想知道,是否有任何StringArray等价于Java的String[]?


当前回答

使用arrayOf, arrayOfNulls, emptyArray

var colors_1: Array<String> = arrayOf("green", "red", "blue")
var colors_2: Array<String?> = arrayOfNulls(3)
var colors_3: Array<String> = emptyArray()

其他回答

String没有特殊情况,因为与Java原语(int, double,…)相比,String是JVM上的普通引用类型——将它们存储在引用Array<T>中需要将它们装箱到Integer和double这样的对象中。专用数组(如Kotlin中的IntArray)的目的是存储未装箱的原语,消除装箱和解装箱的开销(与Java int[]代替Integer[]相同)。

你可以使用Array<String>(和Array<String?> for nulables),相当于Java中的String[]:

val stringsOrNulls = arrayOfNulls<String>(10) // returns Array<String?>
val someStrings = Array<String>(5) { "it = $it" }
val otherStrings = arrayOf("a", "b", "c")

请参见:语言引用中的数组

创建String数组的一些常用方法是

var arr =数组(5){""}

这将创建一个包含5个字符串的数组,初始值为空字符串。

var scar = arrayOfNulls<String?>(5)

这将创建一个大小为5的数组,初始值为null。可以使用String数据修改数组。

var arr = arrayOf(" 0 ", " 1 ", " 2 ", " 3 ")

当你知道数组的内容,然后你可以直接初始化数组。

还有一种创建多维字符串数组的简单方法。 var矩阵=数组(5){数组(6){""}} 这就是如何创建一个5行6列的矩阵,初始值为 空字符串。

使用arrayOf, arrayOfNulls, emptyArray

var colors_1: Array<String> = arrayOf("green", "red", "blue")
var colors_2: Array<String?> = arrayOfNulls(3)
var colors_3: Array<String> = emptyArray()

你也可以用:

val frases = arrayOf("texto01","texto02 ","anotherText","and ")

为例。

这个例子在Android中非常有效

在kotlin中,您可以使用lambda表达式来实现这一点。Kotlin数组构造函数的定义是:

Array(size: Int, init: (Int) -> T)

计算结果为:

skillsSummaryDetailLinesArray = Array(linesLen) {
        i: Int -> skillsSummaryDetailLines!!.getString(i)
}

Or:

skillsSummaryDetailLinesArray = Array<String>(linesLen) {
        i: Int -> skillsSummaryDetailLines!!.getString(i)
}

在这个例子中,字段定义是:

private var skillsSummaryDetailLinesArray: Array<String>? = null

希望这能有所帮助