Respostas:
Não há nenhum caso especial para String
, porque String
é um tipo de referencial comum na JVM, em contraste com primitivos Java ( int
, double
...) - armazená-los em uma referência Array<T>
requer boxe-los em objetos como Integer
eDouble
. O objetivo de matrizes especializadas, como IntArray
no Kotlin, é armazenar primitivas sem caixa, eliminando as despesas gerais de box e unboxing (o mesmo que Java em int[]
vez deInteger[]
).
Você pode usar Array<String>
(e Array<String?>
para anuláveis), o que é equivalente String[]
em Java:
val stringsOrNulls = arrayOfNulls<String>(10) // returns Array<String?>
val someStrings = Array<String>(5) { "it = $it" }
val otherStrings = arrayOf("a", "b", "c")
Veja também: Matrizes na referência de 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
no Kotlin, você deve usar uma das seis abordagens a seguir:Primeira abordagem:
val empty = arrayOf<String>()
Segunda abordagem:
val empty = arrayOf("","","")
Terceira abordagem:
val empty = Array<String?>(3) { null }
Quarta abordagem:
val empty = arrayOfNulls<String>(3)
Quinta abordagem:
val empty = Array<String>(3) { "it = $it" }
Sexta abordagem:
val empty = Array<String>(0, { _ -> "" })
Algumas das maneiras comuns de criar uma matriz String são
Isso criará uma matriz de 5 cadeias com valores iniciais para serem cadeias vazias.
<String?>
(5)Isso criará uma matriz de tamanho 5 com valores iniciais como nulos. Você pode usar dados da String para modificar a matriz.
Quando você já conhece o conteúdo da matriz, pode inicializar a matriz diretamente.
Também existe uma maneira fácil de criar uma matriz multidimensional de seqüências de caracteres.
matriz de var = Matriz (5) {Matriz (6) {""}}
É assim que você pode criar uma matriz com 5 linhas e 6 colunas com valores iniciais de sequência vazia.
Este exemplo funciona perfeitamente no Android
No kotlin, você pode usar uma expressão lambda para isso. A definição do construtor de matriz Kotlin é:
Array(size: Int, init: (Int) -> T)
Qual avalia para:
skillsSummaryDetailLinesArray = Array(linesLen) {
i: Int -> skillsSummaryDetailLines!!.getString(i)
}
Ou:
skillsSummaryDetailLinesArray = Array<String>(linesLen) {
i: Int -> skillsSummaryDetailLines!!.getString(i)
}
Neste exemplo, a definição de campo foi:
private var skillsSummaryDetailLinesArray: Array<String>? = null
Espero que isto ajude
você pode usar também:
val frases = arrayOf("texto01","texto02 ","anotherText","and ")
por exemplo.
typealias StringArray = Array<String>
;)