¿Cuál es el equivalente de Kotlin de Java’s String?[]?

2 minutos de lectura

avatar de usuario
chancywu

Veo que Kotlin tiene ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArrayque son equivalentes a byte[], short[], int[],char[], double[], float[] en Java.

Ahora me pregunto, ¿hay alguna StringArray equivalente a Java String[]?

  • typealias StringArray = Array<String> 😉

    – marstran

    29 de mayo de 2017 a las 11:01

avatar de usuario
tecla de acceso directo

No hay un caso especial para Stringporque String es un tipo referencial ordinario en JVM, en contraste con las primitivas de Java (int, double…) – almacenándolos en una referencia Array<T> requiere encajándolos en objetos como Integer y Double. El propósito de matrices especializadas como IntArray en Kotlin es almacenar primitivos no encajonados, deshaciéndose de la sobrecarga de encajonado y desencajonado (lo mismo que Java int[] en vez de Integer[]).

Puedes usar Array<String> (y Array<String?> para anulables), 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: arreglos en la referencia del idioma

avatar de usuario
andy jazz

Para crear una matriz de cadenas vacía 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, { _ -> "" })

avatar de usuario
Dan Alboteanu

usar gama de, arrayOfNulls, matriz vacía

var colors_1: Array<String> = arrayOf("green", "red", "blue")
var colors_2: Array<String?> = arrayOfNulls(3)
var colors_3: Array<String> = emptyArray()

Esos tipos están ahí para que pueda crear matrices de los primitivos, y no los tipos en caja. Dado que String no es un primitivo en Java, solo puede usar Array<String> en Kotlin como el equivalente de Java String[].

Para Strings y otros tipos, solo usas Array<*>. La razón IntArray y otros existen es para prevenir el autoboxing.

Asi que int[] se relaciona con IntArray dónde Integer[] se relaciona con Array<Int>.

Algunas de las formas comunes de crear una matriz de cadenas son

  1. var matriz = Matriz(5){“”}

Esto creará una matriz de 5 cadenas con valores iniciales para ser una cadena vacía.

  1. var arr = matrizDeNulos<String?>(5)

Esto creará una matriz de tamaño 5 con valores iniciales nulos. Puede usar datos de cadena para modificar la matriz.

  1. var arr = arrayOf(“cero”, “uno”, “dos”, “tres”)

Cuando ya conoce el contenido de la matriz, puede inicializar la matriz directamente.

  1. Hay una manera fácil de crear un matriz multidimensional de cuerdas también.

    var matriz = Matriz(5){Matriz(6) {“”}}

    Así es como puedes crear una matriz con 5 filas y 6 columnas con valores iniciales de cadena vacía.

avatar de usuario
João Arturo

también puedes usar:

val frases = arrayOf("texto01","texto02 ","anotherText","and ")

por ejemplo.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad