我读过其他文章,而不是只写System.out.println(finalPressedKey);
您应该写System.out.println(Arrays.toString((finalPressedKey));
,因为否则它只会返回保存字符串的位置(据我所知)。
public static String PressedKey[] = new String[2000];
public static String[][] finalPressedKey = {{ "", "", "", "", "", "", "", "", "", "", "", "" }}; // 12
public static String FPK3;
public static void upcounter(KeyEvent e) {
for (int x = 0; x < PressedKey.length; x++) {
if (PressedKey[x] != null && PressedKey[x + counter] != null) {
//FPK counter is supposed to be a line, and counter is where the words are supposed to be saved
finalPressedKey[FPKcounter][counter] =
finalPressedKey[FPKcounter] + PressedKey[x + counter];
System.out.println(Arrays.toString(finalPressedKey));
}
}
每当我按下一个按钮时,都应将其保存在我的PressedKey
数组中,并且finalPressedKey应该包含它自己,并且PressedKey
(也应该仅是数组的最后一个元素是打印),但只打印[[Ljava.lang.String;@76f42c4b]
我也尝试使用Arrays.deepToString();
,但它给我的输出与Arrays.toString();
相同
感谢您的帮助!
答案 0 :(得分:2)
String[][]
不是二维数组。它是String[]
的数组。差异虽然微妙但很重要。
方法Arrays.toString()
接受一个数组,遍历其元素,对所有元素调用toString()
,并添加前缀,后缀和定界符。由于您给它一个String[][]
(String[]
的数组),它将执行以下操作:
String[]
)toString()
-给出数组的默认toString()
值-即它的内存地址(不是真的,但这并不重要)幸运的是,有一种更简单的方法-只需使用Arrays.deepToString()
。行为符合您的预期。
答案 1 :(得分:1)
我不了解整个代码,但是以下声明非常可疑:
finalPressedKey[FPKcounter][counter] =
finalPressedKey[FPKcounter] + PressedKey[x + counter];
因为它将字符串(finalPressedKey[...]
)添加到字符串(PressedKey[...]
),这将导致 strange 文本-数组的标准文本表示形式(由toString
返回)。 (从数学角度来看,有2个索引很奇怪)2D_在赋值之前,而在同一矩阵的右侧(1D)只有一个)
我不确定,因为我们看不到counter
是什么,但是我相信您想要这样的东西:
finalPressedKey[FPKcounter][counter] =
finalPressedKey[FPKcounter][counter] + PressedKey[x + counter];
,即第二行中的附加[counter]
。
这也可以写为
finalPressedKey[FPKcounter][counter] += PressedKey[x + counter];
答案 2 :(得分:0)
您必须使用
打印数组的元素for(int i = 0; i<finalPressedKey[0].length; i++){
for(int j=0; j<finalPressedKey[1].length; j++){
System.out.println(finalPressedKey[i][j]);
}
}
如果我理解正确的话。
答案 3 :(得分:0)
如果您只想存储字符串行,那么普通的String []对您来说是有益的
finalPressedKey[FPKcounter] += PressedKey[x + counter];
即使我不建议这样做,无论您要完成什么,因为每次按下一个键都会创建一个新的String对象。
也许您会提出不同的问题,然后告诉我们您要做什么。我猜想String数组可能不是走的路。