Ответы:
Там нет особого случая String
, потому что String
это обычный ссылочной типа на JVM, в отличии от Java примитивов ( int
, double
, ...) - хранить их в ссылке Array<T>
требует бокса в объекты , как Integer
иDouble
. Назначение специализированных массивов, как IntArray
в Kotlin, состоит в том, чтобы хранить неупакованные примитивы, избавляя от накладных расходов на упаковку и распаковку (то же самое, что Java int[]
вместо Integer[]
).
Вы можете использовать Array<String>
(и Array<String?>
для nullables), что эквивалентно String[]
в Java:
val stringsOrNulls = arrayOfNulls<String>(10) // returns Array<String?>
val someStrings = Array<String>(5) { "it = $it" }
val otherStrings = arrayOf("a", "b", "c")
Смотрите также: Массивы в справочнике по языку
использовать 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()
Array of Strings
в Kotlin вы должны использовать один из следующих шести подходов:Первый подход:
val empty = arrayOf<String>()
Второй подход:
val empty = arrayOf("","","")
Третий подход:
val empty = Array<String?>(3) { null }
Четвертый подход:
val empty = arrayOfNulls<String>(3)
Пятый подход:
val empty = Array<String>(3) { "it = $it" }
Шестой подход:
val empty = Array<String>(0, { _ -> "" })
Некоторые из распространенных способов создания массива String:
Это создаст массив из 5 строк с начальными значениями, которые будут пустой строкой.
<String?>
(5)Это создаст массив размером 5 с начальными значениями, равными нулю. Вы можете использовать данные String для изменения массива.
Когда вы уже знаете содержимое массива, вы можете напрямую инициализировать массив.
Существует также простой способ создания многомерного массива строк.
var matrix = Array (5) {Array (6) {""}}
Таким образом, вы можете создать матрицу из 5 строк и 6 столбцов с начальными значениями пустой строки.
Этот пример отлично работает в Android
В kotlin вы можете использовать лямбда-выражение для этого. Определение конструктора массива 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
Надеюсь это поможет
Вы также можете использовать:
val frases = arrayOf("texto01","texto02 ","anotherText","and ")
например.
typealias StringArray = Array<String>
;)