Java 多维字符串给出奇怪的输出

标签 java

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

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]);
            }
        }

    }

输出:

[Ljava.lang.String;@7852e922
[Ljava.lang.String;@7852e922
[Ljava.lang.String;@7852e922
[Ljava.lang.String;@4e25154f
[Ljava.lang.String;@4e25154f

最佳答案

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

请记住,在每个数组内,现在都有另一个数组(因为它是二维数组)。因此,您的 words[0] 情况的结果将是 ["Hello","Mr.","Spencer!"]

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

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

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

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

关于Java 多维字符串给出奇怪的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42857185/

相关文章:

java - 我可以使用 TestInfo 接口(interface)从 @BeforeEach 中排除单个测试吗?

java - 如何创建由完成通量触发的 Mono

java - Firebase 用户界面 : RecyclerView items are not shown

java - 您的项目包含错误,请在运行之前修复它们 :Eclipse

java - 将 YUV_420_888 转换为字节数组

java - fragment 内的简单列表未填充

java - 确定 Postscript 打印支持

java - Android 不支持 Java v7+,所以我应该使用多个 catch 还是一个带有 instanceof 检查的 catch?

java - SwingWorker 和 SwingUtilities.invokeLater 的区别

java - 我如何接受特定网站上的 cookie?