科特林問題:
- 創建一個名為numbers的整數陣列,從 11 到 15。
- 為字串創建一個空的可變串列。
- 撰寫一個for回圈,回圈遍歷陣列并將每個數字的字串表示添加到串列中。
我嘗試了以下方法:
import java.util.*
var numbers = intArrayOf(11,12,13,14,15)
var myList = mutableListOf<String>()
for (element in numbers) {
myList.add(Arrays.toString(element))
}
但它給了我一個錯誤:
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))
^
后來我解決了這個問題
myList.add(Arrays.toString(numbers))
為什么第一個代碼不起作用?
uj5u.com熱心網友回復:
Arrays.toString()用于將整個資料陣列轉換為單個字串,因此無論如何它都不是適合您的任務的工具。(如果您打算這樣做,在 Kotlin 中,應該首選呼叫joinToString()Array 而不是使用 Java 的Arrays實用程式類。)
您想一次將每個人Int轉換為一個String人,因此您應該使用:
myList.add(element.toString())
uj5u.com熱心網友回復:
您的第一種方法不起作用,因為Arrays.toString需要一個陣列并將其轉換為字串,正如您從錯誤訊息中列出的所有多載中看到的那樣。element不是陣列 - 它是陣列的一個元素numbers,即Int. 因此,您的第一種方法不起作用。
請注意,您的第二種方法是將單個字串"[11, 12, 13, 14, 15]"而不是 5 個字串"11", "12", "13", "14", 添加"15"到串列中。如果你想添加的5串,你應該叫toString上element:
for (element in numbers) {
myList.add(element.toString())
}
此外,不建議使用 JavaArrays.toString方法。如果要生成 string "[11, 12, 13, 14, 15]",請numbers.contentToString()改用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/399352.html
