Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提供奇怪输出的Java多维字符串_Java - Fatal编程技术网

提供奇怪输出的Java多维字符串

提供奇怪输出的Java多维字符串,java,Java,所以我只是在这里玩一个2-D字符串数组,想看看如果我只打印出实际数组的行维度,输出是如何变化的。下面是我的代码和奇怪的输出 public class TwoDimensionalArrays { public static void main(String[] args) { String[][] words = { { "Hello", "Mr.", "Spencer!" }, { "How", "Are", "You", "Doing", "Today?" },

所以我只是在这里玩一个2-D字符串数组,想看看如果我只打印出实际数组的行维度,输出是如何变化的。下面是我的代码和奇怪的输出

public class TwoDimensionalArrays {
    public static void main(String[] args) {

        String[][] words = { { "Hello", "Mr.", "Spencer!" }, { "How", "Are", "You", "Doing", "Today?" },
                { "I", "recommend", "an", "outdoor", "activity", "for", "this", "evening." }

        };
for (int m = 0; m < words.length; m++) {
            for (int n = 0; n < words[m].length; n++) {
                System.out.println(words[m]);
            }
        }

    }

正如@yters所指出的,您在这里看到的是对数组的引用

请记住,在每个数组中,现在有另一个数组(因为它是二维数组)。因此,在
单词[0]
的情况下,结果将是
[“你好”,“先生”,“斯宾塞!”]

在Java中执行print语句时,您依赖于objects
toString()
方法来提供正确的信息。在本例中,为其执行此操作的对象的类型为
String[]
,因此是数组。在数组上运行
toString()
时,将打印出对象引用,这就是您得到的结果。(例如:
[Ljava.lang.String;@135fbaa4

要打印数组,可以编写如下代码:

    for (int m = 0; m < words.length; m++) {
        System.out.println(Arrays.toString(words[m]));
    }
for(int m=0;m

通过使用Arrays util类,您可以像这样打印二维数组中的每个数组。

或者您可以将行
System.out.println(words[m]);
更改为
System.out.println(words[m][n]);

Java正在打印字符串数组引用。可能是重复的。他已经使用
单词[m][n]完成了两个循环
也可以;)@AxelH是的,但OP说:
如果我只打印行维度
。因此在我的解释中,他希望得到m的每个索引的完整数组,而不重复索引n。他也没有使用n,所以我也认为他并不真正理解他在做什么。但当然e、 你的观点是正确的,只是我想对这个问题的解释有所不同:——)
    for (int m = 0; m < words.length; m++) {
        System.out.println(Arrays.toString(words[m]));
    }