将字符串列表字符串中的字符串转换为数组列表字符串

时间:2017-01-17 22:00:17

标签: java string arraylist

我正在研究将ArrayList String保存到.txt文档中的方法,然后将其打开,修改ArrayList String然后关闭它等。

目前,我正在使用它再次打开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]

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

谢谢!

2 个答案:

答案 0 :(得分:2)

这里有一些问题:

  1. 您不应该在Java中大写变量名称(按照惯例)。这样做会使您的代码更难以让其他人阅读/调试。因此,您应该将代码示例更改为“someArrayList”或“arrayList”。这有助于澄清问题。
  2. 您误解了ArrayLists的add方法以及您正在使用的任何读者的nextLine方法。 'add'没有任何解析,'nextLine'也没有解析。如果你的文件当前是[5,1,3]并且你调用了你的代码,它只会将整个[5,1,3] String作为单个条目添加到你的ArrayList中。这就是你看到这种嵌套行为的原因。
  3. 现在,当你在讨论括号的来源时,我们讨论的是ArrayList的toString方法(你可能是隐式调用的)。 ArrayList类的toString方法用逗号分隔打开和关闭括号的条目。
  4. 要解决#2和#3,您需要使用库(如其他地方所建议的)或通过循环并打印列表中的每个项目来自行完成。如果你这样做,你还需要选择和使用你知道不会出现在任何项目中的分隔符(逗号通常很好)。最后,您将不得不解析nextLine方法的结果。这是一个快速的代码片段。

    {{1}}

    最后,添加分隔符的小提示......请确保不要在列表中的最后一项之后放置悬挂分隔符。

    我认为这个问题是唯一的(我找不到关于打印然后读取ArrayList的另一个问题),尽管还有关于打印ArrayList和解析文件的其他问题。你可能会在将来更彻底地研究一般主题。

答案 1 :(得分:0)