4 回答
TA贡献1874条经验 获得超12个赞
AString[][]
不是二维数组。它是一个数组String[]
。区别很微妙但很重要。
该方法Arrays.toString()
接受一个数组,遍历其元素,调用toString()
所有元素,并添加前缀、后缀和分隔符。因为你给它一个String[][]
(一个数组String[]
),它会做以下事情:
遍历元素(每个元素都是一个
String[]
)调用每个元素 - 给出数组的
toString()
默认值 - 即它的内存地址(不是真的但是为了这个目的它并不重要)toString()
连接
幸运的是,有一种更简单的方法 - 只需使用Arrays.deepToString()
. 这表现得如您所料。
TA贡献1877条经验 获得超1个赞
我不理解整个代码,但以下语句非常可疑:
finalPressedKey[FPKcounter][counter] = finalPressedKey[FPKcounter] + PressedKey[x + counter];
因为它将数组 ( finalPressedKey[...]
) 添加到字符串 ( PressedKey[...]
),这将导致出现奇怪的文本 - 数组的标准文本表示形式(由 返回toString
)。(从数学的角度来看,在分配之前有 2 个索引 2D_ 并且同一矩阵在右侧(1D)只有一个索引很奇怪)
我不确定,因为我们看不到是什么counter
,但我相信你想要这样的东西:
finalPressedKey[FPKcounter][counter] = finalPressedKey[FPKcounter][counter] + PressedKey[x + counter];
也就是说,[counter]
第二行有一个额外的。
这也可以写成
finalPressedKey[FPKcounter][counter] += PressedKey[x + counter];
TA贡献2016条经验 获得超9个赞
如果您只想存储字符串行,普通的 String[] 对您有好处
finalPressedKey[FPKcounter] += PressedKey[x + counter];
尽管我不建议这样做,但无论您想要完成什么,因为每次按下一个键时都会创建一个新的 String 对象。
也许以不同的方式提出问题并告诉我们您要做什么。我想字符串数组可能不是要走的路。
TA贡献1810条经验 获得超4个赞
您必须使用打印数组的元素
for(int i = 0; i<finalPressedKey[0].length; i++){
for(int j=0; j<finalPressedKey[1].length; j++){
System.out.println(finalPressedKey[i][j]);
}
}
如果我理解正确的话。
添加回答
举报