• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

426
Views
Problema en Kotlin con la inserción de elementos de matriz Int en la lista de cadenas usando For loop (se usa toString)

Problema de Kotlin:

  1. Cree una matriz entera de números llamados números , del 11 al 15.
  2. Cree una lista mutable vacía para cadenas.
  3. Escriba un ciclo for que recorra la matriz y agregue la representación de cadena de cada número a la lista.

He probado lo siguiente:

 import java.util.* var numbers = intArrayOf(11,12,13,14,15) var myList = mutableListOf<String>() for (element in numbers) { myList.add(Arrays.toString(element)) }

Pero me da error:

 error: none of the following functions can be called with the arguments supplied: public open fun toString(p0: Array<(out) Any!>!): String! defined in java.util.Arrays public open fun toString(p0: BooleanArray!): String! defined in java.util.Arrays public open fun toString(p0: ByteArray!): String! defined in java.util.Arrays public open fun toString(p0: CharArray!): String! defined in java.util.Arrays public open fun toString(p0: DoubleArray!): String! defined in java.util.Arrays public open fun toString(p0: FloatArray!): String! defined in java.util.Arrays public open fun toString(p0: IntArray!): String! defined in java.util.Arrays public open fun toString(p0: LongArray!): String! defined in java.util.Arrays public open fun toString(p0: ShortArray!): String! defined in java.util.Arrays myList.add(Arrays.toString(element)) ^

Más tarde resolví el problema con

 myList.add(Arrays.toString(numbers))

¿Por qué el primer código no funcionó?

about 3 years ago · Santiago Trujillo
2 answers
Answer question

0

Arrays.toString() es para convertir una matriz completa de datos en una sola cadena, por lo que no es la herramienta adecuada para su tarea de todos modos. (Si iba a hacer esto, en Kotlin, debería preferirse llamar a joinToString() en el Array en lugar de usar la clase de utilidad Arrays de Java).

Desea convertir cada Int individual en una String de uno en uno, por lo que debe usar:

 myList.add(element.toString())
about 3 years ago · Santiago Trujillo Report

0

Su primer método no funciona porque Arrays.toString toma una matriz y la convierte en una cadena, como puede ver en todas las sobrecargas enumeradas en el mensaje de error. El element no es una matriz, es un elemento de la matriz de numbers , es decir, un Int . Por lo tanto, su primera forma no funciona.

Tenga en cuenta que su segunda forma agrega la cadena única "[11, 12, 13, 14, 15]" , en lugar de las 5 cadenas "11" , "12" , "13" , "14" , "15" a la lista . Si desea agregar esas 5 cadenas, debe llamar a toString en el element :

 for (element in numbers) { myList.add(element.toString()) }

Además, no se recomienda utilizar el método Java Arrays.toString . Si desea generar la cadena "[11, 12, 13, 14, 15]" , use en su lugar numbers.contentToString() .

about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error