[Ljava.lang.String;尝试在Java中拆分数组列表时出错

[Ljava.lang.String;尝试在Java中拆分数组列表时出错,java,csv,file,arraylist,split,Java,Csv,File,Arraylist,Split,我对java相当陌生,我相信这个问题来自我对java缺乏理解 我正在尝试读取CSV值的数组列表。下面是我的代码: public static void readFile(){ String line = ""; try{ BufferedReader br = new BufferedReader(new FileReader(Main.filepath)); while((line =

我对java相当陌生,我相信这个问题来自我对java缺乏理解

我正在尝试读取CSV值的数组列表。下面是我的代码:

    public static void readFile(){
        String line = "";
        try{
            BufferedReader br = new BufferedReader(new FileReader(Main.filepath));

            while((line = br.readLine()) != null){  //reads whilst the next line is not null
                fileData.add(line);                 //adds current line to array list
        }
        catch (Exception ex){
            System.out.println("File Not Found");   //if file not found, print
        }
    }
当我期待更像

1999
2007
1956
1987
感谢您的帮助

String[] temp = fileData.get(1).split(",");
System.out.println(temp);
这将使用toString的默认实现打印出数组:

返回对象的字符串表示形式 toString方法返回一个字符串,该字符串“以文本形式表示”此 结果应该是一个简洁但信息丰富的表示 这对一个人来说很容易阅读。建议大家 子类重写此方法

类对象的toString方法返回一个字符串,该字符串由 对象作为实例的类的名称,at符号 字符“@”和哈希的无符号十六进制表示形式 对象的代码。换句话说,此方法返回一个等于 价值:

 getClass().getName() + '@' + Integer.toHexString(hashCode())
在您的例子中,您需要再次迭代数组,并使用toString弹出每个元素

这将使用toString的默认实现打印出数组:

返回对象的字符串表示形式 toString方法返回一个字符串,该字符串“以文本形式表示”此 结果应该是一个简洁但信息丰富的表示 这对一个人来说很容易阅读。建议大家 子类重写此方法

类对象的toString方法返回一个字符串,该字符串由 对象作为实例的类的名称,at符号 字符“@”和哈希的无符号十六进制表示形式 对象的代码。换句话说,此方法返回一个等于 价值:

 getClass().getName() + '@' + Integer.toHexString(hashCode())

在您的例子中,您需要再次迭代数组,并用toString弹出每个元素,迭代数组
tmp
的每个
字符串并打印该值。此外,您应该替换
fileData.get(1).split(,”);
for
fileData.get(i).split(,”)

最后,使用来自Java的流,您可以将方法简化为:

 fileData.stream().map(i -> i.split(",")).forEach(i -> Arrays.asList(i).forEach(System.out::println));
或使用不同的格式样式:

  fileData.stream().map(i -> i.split(",")).map(Arrays::toString).forEach(System.out::println);

迭代数组
tmp
的每个
字符串
,并打印该值。此外,您应该替换
fileData.get(1).split(,”;
for
fileData.get(i).split(,”;

最后,使用来自Java的流,您可以将方法简化为:

 fileData.stream().map(i -> i.split(",")).forEach(i -> Arrays.asList(i).forEach(System.out::println));
或使用不同的格式样式:

  fileData.stream().map(i -> i.split(",")).map(Arrays::toString).forEach(System.out::println);

您必须首先将循环中的变量冻结为i而不是1,然后split方法返回一个字符串数组,因此您应该在数组中选择正确的值:

 String[] temp = fileData.get(i).split(",");
 System.out.println(temp[1]);

您必须首先将循环中的变量冻结为i而不是1,然后split方法返回一个字符串数组,因此您应该在数组中选择正确的值:

 String[] temp = fileData.get(i).split(",");
 System.out.println(temp[1]);