打印并访问列表 <String\[\]>

新手上路,请多包涵

我正在读取一个文件并将其存储在 t1 中。如何访问 t1 中的元素?当我尝试打印它时,我得到的是地址而不是值。另外 StringString[] 之间有什么区别?

         CSVReader reader = new CSVReader(new FileReader("src/new_acquisitions.csv"));
        List <String[]> t1 = reader.readAll();

        int i = 0
        while(i < t1.size()) {
          System.out.println(t1.get(i));
          i++;
        }

输出:

 [Ljava.lang.String;@9304b1
[Ljava.lang.String;@190d11
[Ljava.lang.String;@a90653
[Ljava.lang.String;@de6ced

原文由 nubme 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 403
2 个回答

String[] 是一个字符串数组,因此它没有像您预期的那样打印的原因,请尝试:

 for (int i = 0; i < t1.size(); i++) {
    String[] strings = t1.get(i);
    for (int j = 0; j < strings.length; j++) {
        System.out.print(strings[j] + " ");
    }
    System.out.println();
}

或者更简洁:

 for (String[] strings : t1) {
    for (String s : strings) {
        System.out.print(s + " ");
    }
    System.out.println();
}

或者更好:

 for (String[] strings : t1) {
    System.out.println(Arrays.toString(strings));
}

原文由 DaveJohnston 发布,翻译遵循 CC BY-SA 2.5 许可协议

正如 Petar 所提到的,您的列表是一个字符串数组列表,因此您打印的是数组,而不是数组内容。

打印数组内容的懒惰方法是将数组转换为 List<String>java.utils.Arrays.toString()

 String[] stringArray=new String[] { "hello", world };
System.out.println(Arrays.toString(stringArray));

[“你好世界”]

原文由 RedPandaCurios 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题