我看到Kotlin有ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray,这相当于字节[],短[],int[],char[],双[],浮动[]在Java中。
现在我想知道,是否有任何StringArray等价于Java的String[]?
我看到Kotlin有ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray,这相当于字节[],短[],int[],char[],双[],浮动[]在Java中。
现在我想知道,是否有任何StringArray等价于Java的String[]?
当前回答
对于字符串和其他类型,只需使用Array<*>。 IntArray和其他工具存在的原因是为了防止自动装箱。
所以int[]与IntArray相关,其中Integer[]与Array< int >相关。
其他回答
要在Kotlin中创建一个空字符串数组,您应该使用以下方法之一:
第一种方法:
var empty = arrayOf<String>()
第二种方法:
var empty = arrayOf("","","")
第三种方法:
var empty = Array<String?>(3) { null }
第四个方法:
var empty = arrayOfNulls<String>(3)
第五个方法:
var empty = Array<String>(3) { "it = $it" }
第六个方法:
var empty = Array<String>(0, { _ -> "" })
但是,如果您需要一个字符数组,请使用以下方法:
var charArr = charArrayOf('a','b','c')
存在这些类型是为了创建基本类型的数组,而不是盒装类型。因为String在Java中不是一个原语,你可以在Kotlin中使用Array<String>作为Java String[]的等价。
对于字符串和其他类型,只需使用Array<*>。 IntArray和其他工具存在的原因是为了防止自动装箱。
所以int[]与IntArray相关,其中Integer[]与Array< int >相关。
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列的矩阵,初始值为 空字符串。