Risposte:
Non c'è nessun caso speciale per String
, perché String
è un tipo referenziale ordinaria su JVM, in contrasto con le primitive Java ( int
, double
, ...) - la loro memorizzazione in un punto di riferimento Array<T>
richiede loro boxe in oggetti come Integer
eDouble
. Lo scopo di matrici specializzate come IntArray
in Kotlin è quello di memorizzare primitive non boxate, eliminando il boxing e l'overboxing overhead (lo stesso di Java int[]
invece diInteger[]
).
Puoi usare Array<String>
(e Array<String?>
per nullables), che è equivalente a String[]
in Java:
val stringsOrNulls = arrayOfNulls<String>(10) // returns Array<String?>
val someStrings = Array<String>(5) { "it = $it" }
val otherStrings = arrayOf("a", "b", "c")
Vedi anche: Matrici nel riferimento linguistico
usa 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
in Kotlin è necessario utilizzare uno dei seguenti sei approcci:Primo approccio:
val empty = arrayOf<String>()
Secondo approccio:
val empty = arrayOf("","","")
Terzo approccio:
val empty = Array<String?>(3) { null }
Quarto approccio:
val empty = arrayOfNulls<String>(3)
Quinto approccio:
val empty = Array<String>(3) { "it = $it" }
Sesto approccio:
val empty = Array<String>(0, { _ -> "" })
Alcuni dei modi più comuni per creare un array String sono
Questo creerà un array di 5 stringhe con valori iniziali per essere stringa vuota.
<String?>
(5)Ciò creerà un array di dimensioni 5 con valori iniziali da null. È possibile utilizzare i dati String per modificare l'array.
Quando si conosce già il contenuto dell'array, è possibile inizializzare direttamente l'array.
C'è un modo semplice per creare un array multidimensionale di stringhe.
var matrix = Array (5) {Array (6) {""}}
Ecco come è possibile creare una matrice con 5 righe e 6 colonne con valori iniziali di stringa vuota.
Questo esempio funziona perfettamente su Android
In kotlin puoi usare un'espressione lambda per questo. La definizione del costruttore di array Kotlin è:
Array(size: Int, init: (Int) -> T)
Che valuta a:
skillsSummaryDetailLinesArray = Array(linesLen) {
i: Int -> skillsSummaryDetailLines!!.getString(i)
}
O:
skillsSummaryDetailLinesArray = Array<String>(linesLen) {
i: Int -> skillsSummaryDetailLines!!.getString(i)
}
In questo esempio la definizione del campo era:
private var skillsSummaryDetailLinesArray: Array<String>? = null
Spero che questo ti aiuti
puoi usare anche:
val frases = arrayOf("texto01","texto02 ","anotherText","and ")
per esempio.
typealias StringArray = Array<String>
;)