2017-01-17 211 views
-3

我正在处理一个将ArrayList字符串保存到.txt文档中的方法,然后打开它,修改ArrayList字符串,然后关闭它。将字符串从数组列表字符串转换为数组列表字符串

目前,我正在使用此再次打开的ArrayList起来:

ArrayList.add(fileIn.nextLine()) 

这工作,但不是因为完成某些预期的数组列表出现这种情况的节省:

[ [ [ [ ], 7,68, 9,71, 11,73, 13,72, 12,70], 9,72, 11,73, 13,72, 12,70, 10,69, 9,71], 6,76, 6,78, 8,77, 8,75, 7,74] 

数组列表'o verlaps'。有没有办法保存或加载数组列表时不重叠?

谢谢!

+2

我在[ArrayList'文档中没有看到静态的'add(String str)'方法...](https://docs.oracle.com/javase/8/docs/api/java/ util/ArrayList.html) –

+0

在'ArrayList'类中没有静态方法'add' ... –

+0

我使用了ArrayList。举个例子。 –

回答

2

你有几个问题这里:

  1. 您不应该在Java中使用变量名(按照惯例)。这样做会让您的代码更难以让其他人读/调试。因此,您应该将您的代码示例更改为'someArrayList'或'arrayList'。这将有助于清理事情。
  2. 您误解了您正在使用的任何阅读器的ArrayLists的add方法和nextLine方法。 'add'不会解析任何东西,'nextLine'也不解析。如果你的文件当前是[5,1,3],并且你调用了你的代码,它将简单地将整个[5,1,3] String添加到你的ArrayList中作为一个单独的条目。这就是为什么你看到这种嵌套行为。
  3. 现在,当您谈论括号甚至来自何处时,我们正在讨论ArrayList的toString方法(您可能隐式调用它)。 ArrayList类的toString方法输出用逗号分隔的条目,并用括号和右括号括起来。

为了解决#2,#3,你要么需要使用一个库(如别处建议),或者做自己通过在列表中循环,并打印每个项目。如果你这样做,你还需要选择和使用一个你知道不会出现在任何项目中的分隔符(逗号通常是好的)。最后,你将不得不分析nextLine方法的结果。这是一个快速的片段。

String nextLine = fileIn.nextLine(); 
arrayList.addAll(nextLine.split(","));//I use comma here, since I assume you will be separating your list with commas 

最后,添加分隔符的小技巧...确保您不要在列表中的最后一个项目之后放置分隔符。

这个问题是我认为独特的(我找不到另一个关于打印然后读取ArrayList的问题),但是还有其他关于打印ArrayList和解析文件的问题。未来可能会更好地研究一般主题。

相关问题