将ArrayList转换为字符串的最佳方法

时间:2017-06-07 05:05:24

标签: java string arraylist

我有一个场景,如果用户从下拉列表中选择任何选项,那么该值将作为ArrayList发送到服务器。如果用户没有选择任何内容,那么默认值将作为String发送到服务器。在java中我必须将值转换为字符串(如果我得到ArrayList我必须将其转换为字符串,如果我得到字符串我必须按原样存储。用最少的代码执行此操作的最佳方法是什么?

我正在尝试下面的代码:

String encoding =  myMap.get("encoding").toString();

encoding = encoding.replaceAll("\\[\\]", ""); \\removing brackets

3 个答案:

答案 0 :(得分:0)

使用[\\[\\]]

而不是您当前正在使用的正则表达式
List<Integer> list = Arrays.asList(1,2,3,4,5);
String s = list.toString().replaceAll("[\\[\\]]", "");
System.out.println(s);  

或者您可以使用substring,例如

String s = list.toString().substring(1, list.toString().length()-1);

答案 1 :(得分:0)

我认为您需要检查转换为字符串的对象是否为数组,因为它们会以不同方式转换为字符串:

public String listToString(List<Object> list) {
        StringBuilder sb = new StringBuilder();

        for (Object object : list) {
            if (object != null) {
                if (object.getClass().isArray()) {
                    sb.append(Arrays.toString((Object[]) object));
                } else {
                    sb.append(object.toString());
                }
            }
        }
        return sb.toString();
    }

答案 2 :(得分:0)

你永远不应该依赖list.toString().replaceAll("[\\[\\]]", "")这样的东西,因为它们只是列表的toString方法的一个特定实现,并且可以随时改变,使你的代码崩溃......

自java8

以来,使用 加入
List<Object> olist = Arrays.asList(1, 2, 3, 4, 5);
List<String> sList = olist.stream().map(String::valueOf).collect(Collectors.toList());
String results = String.join(",", sList);
System.out.println(results);