Java 为什么可以';我不能从多维数组中打印字符串吗?

Java 为什么可以';我不能从多维数组中打印字符串吗?,java,string,eclipse,multidimensional-array,Java,String,Eclipse,Multidimensional Array,我在其他的帖子中读到过,不是只写System.out.println(finalPressedKey) 您应该编写System.out.println(Arrays.toString((finalPressedKey));,否则它只会返回保存字符串的位置(据我所知) 公共静态字符串按键[]=新字符串[2000]; 公共静态字符串[][]finalPressedKey={{{”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”};//12 公共静态字符串FPK3;

我在其他的帖子中读到过,不是只写
System.out.println(finalPressedKey)
您应该编写
System.out.println(Arrays.toString((finalPressedKey));
,否则它只会返回保存字符串的位置(据我所知)

公共静态字符串按键[]=新字符串[2000];
公共静态字符串[][]finalPressedKey={{{”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”};//12
公共静态字符串FPK3;
公共静态无效上行计数器(KeyEvent e){
用于(int x=0;x
每当我按下一个按钮时,它应该保存在我的
PressedKey
数组中,finalPressedKey应该包含它自己,而
PressedKey
(另外,只应该打印数组的最后一个元素),但它只打印
[[Ljava.lang.String;@76f42c4b]

我还尝试过使用
Arrays.deepToString();
,但它提供的输出与
Arrays.toString();


感谢您的帮助!

字符串[][]
不是二维数组。它是一个字符串[]数组。区别很细微,但很重要

方法
Arrays.toString()
获取一个数组,遍历其元素,对所有元素调用
toString()
,并添加前缀、后缀和分隔符。由于您给它一个
String[][]
(一个
String[]
的数组),它将执行以下操作:

  • 遍历元素(每个元素都是
    字符串[]
  • 对每个元素调用
    toString()
    ,给出数组的默认
    toString()
    值,即它的内存地址(不是真的,但对于这个目的,这并不重要)
  • 连接

幸运的是,有一种更简单的方法-只需使用
数组。deepToString()
。这与您预期的一样。

您必须使用


for(int i=0;i如果您只想存储字符串行,那么普通字符串[]对您很有好处

finalPressedKey[FPKcounter] += PressedKey[x + counter];
尽管我不会建议您这样做,但无论您试图完成什么,因为每次按下一个键时都会创建一个新的字符串对象


可能会问不同的问题,并告诉我们您想做什么。我想字符串数组可能不是解决问题的方法。

我不理解整个代码,但下面的语句非常可疑:

finalPressedKey[FPKcounter][counter] =
finalPressedKey[FPKcounter] + PressedKey[x + counter];
因为它将数组(
finalPressedKey[…]
)添加到字符串(
PressedKey[…]
)中,这将产生奇怪的文本-数组的标准文本表示形式(由
toString
返回)(从数学角度看,有两个索引很奇怪)2D_uu在赋值之前,且同一矩阵的右侧(1D)仅一个)

我不确定,因为我们看不到什么是
计数器,但我相信您想要的是:

finalPressedKey[FPKcounter][counter] =
finalPressedKey[FPKcounter][counter] + PressedKey[x + counter];
也就是说,在第二行增加一个
[计数器]

这也可以写成

finalPressedKey[FPKcounter][counter] += PressedKey[x + counter];

如果您使用了
Arrays.deepToString()
,它会起作用。您可以用它来发布您的尝试吗?否则它只会返回保存字符串的位置--这是打印的对象内部哈希代码,与“位置”无关如果修复代码的缩进,OP可以更好地理解它。OP已经“尝试使用
数组。deepToString();
”我打赌字符串表示形式已经在数组中了
finalPressedKey[FPKcounter][counter] += PressedKey[x + counter];