【问题标题】:Convert a string from an Array List String into an Array List String将字符串从数组列表字符串转换为数组列表字符串
【发布时间】:2017-01-17 22:00:17
【问题描述】:

我正在研究一种将 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]

数组列表“重叠”。有什么方法可以保存或加载数组列表而不重叠?

谢谢!

【问题讨论】:

  • 我在the ArrayList documentation... 中没有看到静态的add(String str) 方法
  • add 类中没有静态方法add ...
  • 我使用了 ArrayList。举个例子。

标签: java string arraylist


【解决方案1】:

这里有几个问题:

  1. 您不应该在 Java 中将变量名大写(按照惯例)。这样做会使您的代码更难被其他人阅读/调试。因此,您应该将代码示例更改为“someArrayList”或“arrayList”。这将有助于解决问题。
  2. 您误解了 ArrayLists 的 add 方法和您使用的任何阅读器的 nextLine 方法。 “add”不做任何解析,“nextLine”也不做解析。如果您的文件当前是 [5,1,3] 并且您调用您的代码,它将简单地将整个 [5,1,3] 字符串作为单个条目添加到您的 ArrayList 中。这就是您看到这种嵌套行为的原因。
  3. 现在,当您谈论括号的来源时,我们谈论的是 ArrayList 的 toString 方法(您可能隐式调用该方法)。 ArrayList 类的 toString 方法打印出条目,以逗号分隔,带有左括号和右括号。

要解决 #2 和 #3,您将需要使用库(如其他地方所建议的那样)或通过循环并打印列表中的每个项目来自己完成。如果您这样做,您还需要选择并使用您知道不会出现在任何项目中的分隔符(逗号通常很好)。最后,您必须解析 nextLine 方法的结果。这是一个快速的 sn-p。

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 和解析文件的问题。将来您最好对一般主题进行更彻底的研究。

【讨论】:

    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-26
    • 1970-01-01
    • 2021-07-14
    相关资源
    最近更新 更多