【问题标题】:How to print/log array of string in java?如何在java中打印/记录字符串数组?
【发布时间】:2012-06-27 02:53:14
【问题描述】:

小背景:

我有 csv 文件,它有很多行,每一行都有字符串元素,这样一行的一个例子是

String[] data = [20,11,Clothing,TShirts,Abercombie,Gap]

data.toString() = [Ljava.lang.String;@1152e94]

现在在我的解析器中,我正在解析这个 csv 文件并将文件中的每一行作为 String[] data。在我的日志页面中,我需要有 id 以及文件中存在的行。

目前,如果我尝试打印然后得到像 [Ljava.lang.String;@1152e94 这样的值,我的问题是如何获得像 [20, 11, Clothing, TShirts, Abercombie, Gap] 这样的数组元素的实际列表?

尝试使用默认的toString(),但它仍然提供相同的LString 数据。

【问题讨论】:

    标签: java string object


    【解决方案1】:

    使用Arrays.toString(array) 获得更易读的内容。

    【讨论】:

    • 我得到的值为[Ljava.lang.String;@1152e94
    • 是的,我明白了,在使用Arrays.toString() 之后,我能够很好地打印值而没有任何问题。
    【解决方案2】:

    使用Arrays.toString(array); 会起作用的

    【讨论】:

      【解决方案3】:

      可能是:What's the simplest way to print a Java array? ?

      String[] data = [20,11,Clothing,TShirts,Abercombie,Gap]
      Arrays.toString(data);
      

      Arrays.deepToString(data);
      

      【讨论】:

        【解决方案4】:

        读取 csv 文件的一行并在该行上调用 String.split(",") 这将返回您刚刚读取的行中每个单独字符串的数组,然后您可以简单地遍历数组并打印它们根据需要输出。

        String csvLine = scanner.nextLine();
        
        String[] values = csvLine.split(",");
        for(String s : values){
          System.out.println(s);
        }
        

        【讨论】:

          猜你喜欢
          • 2010-10-02
          • 1970-01-01
          • 2021-09-21
          • 1970-01-01
          • 2019-02-12
          • 1970-01-01
          • 1970-01-01
          • 2020-03-13
          • 2018-07-10
          相关资源
          最近更新 更多