4

我有一个ArrayList,我需要将它转换为一个字符串。

字符串中的每个值都将在标记内,并用逗号分隔,如下所示:

ArrayList list = [a,b,c]

String s = " ’a’,’b’,’c’ ";

我正在寻找有效的解决方案。

4

4 回答 4

8

您可以按照以下步骤操作: -

  • 创建一个空StringBuilder实例

    StringBuilder builder = new StringBuilder();
    
  • 迭代你的list

  • 对于每个元素,将每个元素的表示附加到您的 StringBuilder 实例

    builder.append("'").append(eachElement).append("', ");
    
  • 现在,由于剩下最后一个逗号,您需要删除它。您可以使用StringBuilder.replace()删除最后一个字符。

您可以查看文档StringBuilder以了解有关您可以使用的各种方法的更多信息。

于 2012-10-21T20:26:35.223 回答
0

Maybe an overkill here but providing a more functional approach through Guava:

import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.collect.Collections2;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;


public class Main {

    public static void main(String ... args){
        List<String> list = new ArrayList(){{add("a");add("b");add("c");}};
        Collection<String> quotedList = Collections2.transform(list,new Function<String, String>() {
            @Override
            public String apply(String s) {
                return "'"+s+"'";
            }
        });
        System.out.println(Joiner.on(",").join(quotedList));
    }
}
于 2012-10-21T20:29:20.420 回答
0

使用来自 Apache org.apache.commons.lang3.StringUtils 的 StringUtils 库;

    StringUtils.join(list, ", ");

或者

String s = (!list.isEmpty())? "'" + StringUtils.join(list , "', '")+ "'":null;
于 2012-10-21T20:48:23.327 回答
0

看一下 StringBuilder 和 StringBuffer:

字符串缓冲区

字符串生成器

于 2012-10-21T20:22:34.770 回答