Respuestas:
No hay caso especial para el String
, porque String
es un tipo de referencia ordinaria en la JVM, en contraste con las primitivas de Java ( int
, double
, ...) - almacenándolos en una referencia Array<T>
requiere el boxeo en objetos como Integer
yDouble
. El propósito de las matrices especializadas como IntArray
en Kotlin es almacenar primitivas no encajonadas, deshacerse de los gastos generales de boxeo y desempaquetado (lo mismo que Java en int[]
lugar de Integer[]
).
Puede usar Array<String>
(y Array<String?>
para nulables), que es equivalente a String[]
en Java:
val stringsOrNulls = arrayOfNulls<String>(10) // returns Array<String?>
val someStrings = Array<String>(5) { "it = $it" }
val otherStrings = arrayOf("a", "b", "c")
Ver también: matrices en la referencia del idioma
use 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
en Kotlin, debe usar uno de los siguientes seis enfoques:Primer enfoque:
val empty = arrayOf<String>()
Segundo enfoque:
val empty = arrayOf("","","")
Tercer enfoque:
val empty = Array<String?>(3) { null }
Cuarto enfoque:
val empty = arrayOfNulls<String>(3)
Quinto enfoque:
val empty = Array<String>(3) { "it = $it" }
Sexto enfoque:
val empty = Array<String>(0, { _ -> "" })
Algunas de las formas comunes de crear una matriz de cadenas son
Esto creará una matriz de 5 cadenas con valores iniciales para ser una cadena vacía.
<String?>
(5)Esto creará una matriz de tamaño 5 con valores iniciales que serán nulos. Puede usar datos de cadena para modificar la matriz.
Cuando ya conozca el contenido de la matriz, puede inicializar la matriz directamente.
También hay una manera fácil de crear una matriz multidimensional de cadenas.
matriz var = matriz (5) {matriz (6) {""}}
Así es como puede crear una matriz con 5 filas y 6 columnas con valores iniciales de cadena vacía.
Este ejemplo funciona perfectamente en Android
En kotlin puedes usar una expresión lambda para esto. La definición de Kotlin Array Constructor es:
Array(size: Int, init: (Int) -> T)
Lo que evalúa a:
skillsSummaryDetailLinesArray = Array(linesLen) {
i: Int -> skillsSummaryDetailLines!!.getString(i)
}
O:
skillsSummaryDetailLinesArray = Array<String>(linesLen) {
i: Int -> skillsSummaryDetailLines!!.getString(i)
}
En este ejemplo, la definición del campo fue:
private var skillsSummaryDetailLinesArray: Array<String>? = null
Espero que esto ayude
también puedes usar:
val frases = arrayOf("texto01","texto02 ","anotherText","and ")
por ejemplo.
typealias StringArray = Array<String>
;)