如何在arraylist中打印实际的字符串?

时间:2016-05-02 00:52:23

标签: java arrays string arraylist

我正在尝试打印我用来存储字符串数组的arraylist的内容。基本上,我正在尝试编写一个逐行读取文件的程序,并将各行作为单独的字符串数组存储在arraylist中。我想通过在arraylist中打印字符串数组来检查它是否有效,但目前我的代码只打印地址。它看起来如下:

package Filecheck;
import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;

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

        // The name of the file to open.
        String fileName = "/Users/Frank/Desktop/test.rtf";

        String line;
        String[] name = null;
        ArrayList<String[]> list = new ArrayList<String[]>();
        try {

            FileReader fileReader = new FileReader(fileName);

            BufferedReader readerB = new BufferedReader(fileReader);
            line = readerB.readLine();
            while((line = readerB.readLine()) != null) {
                System.out.println(line);
                name = line.split(" ");
                list.add(name);
            }
            for (int i=0; i < list.size(); i++){
                System.out.println(list.get(0).toString());
            }

            readerB.close();         
        }
        catch(FileNotFoundException ex) {
            System.out.println(
                "Unable to open file '" + 
                fileName + "'");                
        }
        catch(IOException ex) {
            System.out.println(
                "Error reading file '" 
                + fileName + "'");                  

        }
    }
}

代码的输出如下:

{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural

\f0\fs24 \cf0 \
Test String The pens are going to win the cup\
Another Test}
[Ljava.lang.String;@533ded59
[Ljava.lang.String;@533ded59
[Ljava.lang.String;@533ded59
[Ljava.lang.String;@533ded59
[Ljava.lang.String;@533ded59
[Ljava.lang.String;@533ded59
[Ljava.lang.String;@533ded59
[Ljava.lang.String;@533ded59

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

一些简单的选择。有很多方法可以做到这一点,我无法涵盖所有​​这些方法。

1)考虑是否需要存储String数组列表,而只是存储字符串列表。

2)创建自己的打印数组函数,并在迭代数组时为每个元素调用该函数。该函数的示例实现可以是

public void printArray(T[] array) { for(T item : array) System.out.println(item); }

3)将数组或字符串转换为字符串列表