【问题标题】:Java: how to print an entire array of strings?Java:如何打印整个字符串数组?
【发布时间】:2014-02-06 23:47:21
【问题描述】:

我正在尝试打印一个由七个字符串组成的数组,并使用 get 方法将它们返回到打印前的最小值,但是每当我运行它时,控制台上都会出现一些随机乱码:[Ljava.lang.String ;@6d6de4e1

这是我的get方法

String[] getStuff(){
    return stuff;
}

这是主类的打印方法:

System.out.println(trex.getStuff());

数组是完全有效的,而且全是字符串,所以我不确定这个错误是什么。

【问题讨论】:

  • 尝试将此数组转换为列表,然后使用 toString() 方法打印该列表。使用 Arrays.asList(trex.getStuff()) 进行转换
  • 您正在打印对象,您需要遍历数组并单独打印每个对象。
  • @TomaszBekas 为什么要转换为列表...只需使用Arrays.toString()Arrays.deepToString() 打印即可
  • @Java Devil 哦,是的,你是对的。

标签: java arrays printing


【解决方案1】:

您想打印内部对象的字符串值,而不是数组的字符串值。幸运的是,java 有一个内置函数:Arrays.deepToString()

所以你的打印代码应该是:

System.out.println(Arrays.deepToString(trex.getStuff()));

【讨论】:

  • 不知道你要不要逗号。我认为Arrays.deepToString() 为每个元素添加了“,”。这可能/可能不适合您的应用程序。
【解决方案2】:

您正在打印对七个字符串的引用,而不是对 7 个字符串的引用。 要打印出字符串,请使用 for 循环

for (String str : array) {
    System.out.println(str);
}

或者使用静态数组方法Arrays.toString(array);

【讨论】:

    【解决方案3】:

    您可以使用Arrays.toString()静态辅助方法如下:

    System.out.println(java.util.Arrays.toString(trex.getStuff()));
    

    【讨论】:

      【解决方案4】:

      您可以随时使用Arrays.toString(String[])。导入java.util.Arrays;

      否则,您可以遍历返回的数组。 你看到的是数组开始的内存地址,而不是它的元素。

      【讨论】:

        【解决方案5】:

        您正在尝试打印list

        请尝试通过 for 循环遍历列表中的每个 element

        for(String str : trex.getStuff()) System.out.println(str);
        

        【讨论】:

          【解决方案6】:

          您需要执行一个 for 循环并打印出数组中的每个项目。例如:

          String[] arr = trex.getStuff();
             for (int i=0; i<arr.length; i++) {
                  System.out.println(arr[i]);
              }
          

          【讨论】:

            猜你喜欢
            • 2012-11-06
            • 2013-08-05
            • 1970-01-01
            • 1970-01-01
            • 2012-06-27
            • 2018-07-10
            • 2013-10-29
            • 1970-01-01
            • 2014-05-18
            相关资源
            最近更新 更多