当前位置: 首页 > 知识库问答 >
问题:

Kotlin:如何创建字符串类型的二维数组

洪俊能
2023-03-14

我正在学习kotlin。我需要创建一个可以保存单词、特殊字符和数字的2D数组。我在其中找到了这段代码这个问题是它只能保存Int。当我尝试将关键字“IntArray”替换为“string”时。它返回了错误ERROR有人能帮我创建一个可以在静态编程语言中保存字符串的10x8数组吗

共有3个答案

方梓
2023-03-14

当您将Java代码转换为静态编程语言时,有时IDE无法按照预期的方式将其转换

Array(x) { arrayOf(ArrayList<String>(y)) }

但是这段代码总是抛出ArrayIndexOutOfBoundsException异常,例如

java.lang.ArrayIndexOutOfBoundsException: length=1;索引 = 1

因此,正如@hotkey所建议的,您可以使用下面的方法,这也适用于我;

Array(x) { Array(y) { ArrayList<String>(y) } }
丘普松
2023-03-14

您也可以使用Array

fun main() {
    // Create the 2D array of Strings
    val string2DArray: Array<Array<String>> = arrayOf(
        arrayOf("apple", "orange", "avocado", "mango", "banana"),
        arrayOf("_", "!", ":", "?"),
        arrayOf("1", "2", "3", "4", "5", "10"))

    // Print the 2D array
    string2DArray.forEach {
        it.forEach { it -> print("$it, ") }
        println()
    }

    // Access an individual String using index notation.
    println("My favorite fruit is: ${string2DArray[0][2]}")
}

输出:

apple, orange, avocado, mango, banana,
_, !, :, ?,
1, 2, 3, 4, 5, 10,

My favorite fruit is: avocado

闾丘博超
2023-03-14

Kotlin 中没有 StringArray(这是原因的解释),使用 Array

如果可以在创建数组时提供数组项,则可以按如下方式创建数组:

val result = Array(10) { i ->
    Array(8) { j -> 
        "the String at position $i, $j" // provide some initial value based on i and j
    }
}

println(result[0][3]) // Prints: the String at position 0, 3

否则,您可以使用一些默认的字符串值:

val result = Array(10) { Array(8) { "" } }

或者创建填充有<code>null</code>值的内部数组(注意:您必须处理可空性,您将无法将这些项用作非空值):

val result = Array(10) { arrayOfNulls<String>(8) } // The type is `Array<Array<String?>>
result[0][0] = "abc"
println(result[0][0]!!.reversed()) // Without `!!`, the value is treated as not-safe-to-use

 类似资料:
  • 我需要将字符串转换为JSONObject

  • 问题内容: 我正在使用使用Strings的二维数组的程序(一开始可能不是很聪明,但是eh),并且我想编写一个采用这些数组之一的函数(比方说array1),一个独立的副本,并返回它(假设为array2)。但是,当我然后更改array2中的值时,它似乎反映在array1中。 我的函数当前看起来像这样: 我声明一个新的字符串数组,然后对其进行迭代,分别复制每个值。当这不起作用时,我什至尝试从每个旧字符串

  • 我找不到如何用Kotlin语言将变量(或常量)的类型作为,像。如何完成这一点?

  • 问题内容: 如何从字符串读取numpy数组?采取类似的字符串: 并将其转换为数组: 在哪里成为对象: 更新 : 我正在寻找一个非常简单的界面。一种将2D数组(浮点数)转换为字符串,然后将其读回以重建数组的方法: 应该回来 应该返回对象 理想的情况是,如果有一个用来控制将浮点精度转换为字符串的精度参数,那么您就不会得到像这样的条目。 在numpy的文档中我找不到任何可以同时完成这两种操作的文档。可让

  • 注意此问题包含在Rust 1.0之前的语法。代码无效,但概念仍然相关。 如何在Rust中创建字符串的全局静态数组? 对于整数,这将编译: 但我无法获得类似的字符串编译:

  • 在C++中将二维字符数组复制到一维数组字符串中最简单的方法是什么? 大概是这样的: 问候蒂尔曼