【问题标题】:Store Char array in 2xn Matrix将 Char 数组存储在 2xn 矩阵中
【发布时间】:2020-07-07 02:43:30
【问题描述】:

我想了解char2xn char matrix 中的存储方式

例如

 int numWords = in.nextInt();
 char[][] words = new char[numWords][];

在上面的代码中,wordschar matrx,它可以存储numWords 的行数和n 每行的列数。对吗?

for (int i = 0; i < numWords; i++) {
                words[i] = in.next().toCharArray();
                System.out.println("in.next().toCharArray():"+words[i][i]);

            }

如果我用numWords 运行上面的代码等于1 并且具有值a 1

那么in.next().toCharArray() 返回的char 数组如何保存到words 字符矩阵中呢?

矩阵会是什么样子?

更新:

numWords 等于 1 如果char array 的值为a, ,1 并像这样打印

System.out.println("值:"+words[i][i] + "------"+words[i][i+1]);

为什么它显示以下错误?第一行应该有 3 列?

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException : 1

【问题讨论】:

  • 矩阵的样子? -> 使用System.out.println(java.util.Arrays.toDeepString(words)); 打印它

标签: java arrays multidimensional-array


【解决方案1】:

Java 没有矩阵或多维数组的概念。你所拥有的是一个数组数组,没有什么会迫使“内部”数组具有相同的形状(长度)。

“数组数组”表示它是一个数组,其中元素本身就是数组。

您可以像这样可视化数组数组:

0: **********
1: **
2: ******
3: ***************

当你写作时

char[][] words = new char[numWords][];

您正在创建一个数组,其中元素是char 的数组,最初设置为null。当你写

words[i] = in.next().toCharArray();

您正在使索引 i 处的数组元素指向一个新的 char 数组。

【讨论】:

  • 补充:非矩形的数组命名为Jagged arrays,这是java中数组的“默认”
  • 最好发布一个新问题,而不是更改问题以提出新问题@maria,这样您就可以从更多人那里得到答案
猜你喜欢
  • 2021-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
  • 1970-01-01
  • 1970-01-01
  • 2012-10-12
  • 1970-01-01
相关资源
最近更新 更多