Java的String[]的Kotlin等价物是什么?

c2e8gylq  于 2023-08-07  发布在  Kotlin
关注(0)|答案(8)|浏览(142)

我看到Kotlin有ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray,相当于Java中的byte[], short[], int[],char[], double[], float[]
现在我想知道,是否有任何StringArray等价于Java的String[]

2izufjch

2izufjch1#

String没有特殊情况,因为String是JVM上的普通引用类型,与Java primitives ( int , double , ...)相反--将它们存储在引用Array<T>中需要boxing them into objects like Integer and Double。Kotlin中的专用数组(如IntArray)的目的是存储非装箱原语,摆脱装箱和拆箱开销(与Java int[]相同,而不是Integer[])。
你可以使用Array<String>(和Array<String?>用于空值),它相当于Java中的String[]

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

字符串
另请参见:语言参考中的 Arrays

ut6juiuv

ut6juiuv2#

Kotlin的String数组

要在Kotlin中创建一个空的String数组,你应该使用以下六种方法之一:

// 01
var empty = arrayOf<String>()
// 02
var empty = arrayOf("","","")
// 03
var empty = Array<String?>(3) { null }
// 04
var empty = arrayOfNulls<String>(3)
// 05
var empty = Array<String>(3) { "it = $it" }
// 06
var empty = Array<String>(0, { _ -> "" })

的一个或多个字符串
但是,如果需要字符数组,请使用以下方法:

var charArr = charArrayOf('a','b','c')

rdlzhqv9

rdlzhqv93#

使用 arrayOfarrayOfNullsemptyArray

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

字符串

vkc1a9a2

vkc1a9a24#

这些类型的存在是为了让您可以创建基本类型的数组,而不是装箱的类型。由于String不是Java中的原语,因此您可以在Kotlin中使用Array<String>作为Java String[]的等效物。

qgelzfjb

qgelzfjb5#

对于Strings和其他类型,您只需使用Array<*>IntArray和其他文件存在的原因是为了防止自动装箱。
所以int[]IntArray相关,其中Integer[]Array<Int>相关。

ax6ht2ek

ax6ht2ek6#

创建String数组的一些常用方法包括
1.var arr = Array(5){""}
这将创建一个由5个字符串组成的数组,初始值为空字符串。
1.var arr = arrayOfNulls <String?>(5)
这将创建一个大小为5的数组,初始值为null。可以使用String数据修改数组。
1.var arr = arrayOf(“零”,“一”,“二”,“三”)
当你知道数组的内容时,你可以直接初始化数组。
1.有一个简单的方法来创建一个多维数组的字符串。

var matrix = Array(5){Array(6){""}}

这就是如何创建一个5行6列的矩阵,初始值为空字符串。

iq0todco

iq0todco7#

你也可以使用:

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

字符串
例如。

aiazj4mn

aiazj4mn8#

此示例在Android中运行完美
在Kotlin中,你可以使用lambda表达式来实现这一点。Kotlin数组构造函数的定义是:

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

字符串
其评估为:

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


或者:

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


在此示例中,字段定义为:

private var skillsSummaryDetailLinesArray: Array<String>? = null


希望这对你有帮助

相关问题