【问题标题】:Convert ArrayList Contents to String with Commas使用逗号将 ArrayList 内容转换为字符串
【发布时间】:2013-07-03 23:47:51
【问题描述】:

各位程序员们好,

在我的应用程序中,我只是从文本文件中反序列化了一个 ArrayList,现在我有了一个带有字符串的 ArrayList。出于设计目的,我想将 ArrayList 的内容放入一个带有逗号和空格的有组织的字符串中。

我尝试了它,但他的应用程序强制关闭,并且 LogCat 将错误定位到此代码:

仅供参考:OptionsText 是一个空字符串,ListOptions 是带有字符串的 ArrayList。

public void getOptionsText(){
        int i;
        OptionsText=ListOptions.get(1);
        for(i=2; i<ListOptions.size(); i++){
            OptionsText = OptionsText + ", " + ListOptions.get(i);
        }
        Options.setText(OptionsText);
    }

【问题讨论】:

    标签: java android arrays string for-loop


    【解决方案1】:

    只需使用ArrayList#toString():

    public void getOptionsText() {
        String OptionsText = ListOptions.toString();
        Options.setText(OptionsText.substring(1, OptionsText.length-1);
    }
    

    【讨论】:

    • 这假定ListOptions 是ArrayList。如果ListOptions 是List 怎么办?由于 List 实现是未知的(“程序到接口”),最好使用Arrays.toString。
    • @SteveKuo 不是真的。它假设ListOptions 是AbstractCollection,an abstract class which pretty much every Java SE collection implementation inherits. 当然,一个连接器(Guava/Apache Commons/other)可以工作;手写的方法也是如此。向我展示一个具有 不同 toString() 输出格式的现有库实现;然后,我们会谈谈。
    【解决方案2】:

    你能试试这个吗...检查列表是否不为空...

    list.toString().replace("[", "").replace("]", "");
    

    【讨论】:

    • 这实际上比我的答案更糟糕,无论是性能还是正确性。如果列表的字符串形式的元素之一包含'[' 或']' 怎么办?
    【解决方案3】:

    除了其他 SO 用户给出的其他答案之外,您还可以使用 org.apache.commons.lang 中的 StringUtils 类中的 join 方法。

    或

    来自com.google.common.base 的Joiner 类的join 方法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-25
      • 2019-11-18
      • 2019-09-04
      • 2016-05-03
      • 2012-04-28
      • 2011-10-27
      • 2015-08-26
      相关资源
      最近更新 更多