[Ljava.lang.String;尝试在Java中拆分数组列表时出错
我对java相当陌生,我相信这个问题来自我对java缺乏理解 我正在尝试读取CSV值的数组列表。下面是我的代码:[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 =
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(,”);
forfileData.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(,”;
forfileData.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]);