我有一个场景,如果用户从下拉列表中选择任何选项,那么该值将作为ArrayList
发送到服务器。如果用户没有选择任何内容,那么默认值将作为String发送到服务器。在java中我必须将值转换为字符串(如果我得到ArrayList
我必须将其转换为字符串,如果我得到字符串我必须按原样存储。用最少的代码执行此操作的最佳方法是什么?
我正在尝试下面的代码:
String encoding = myMap.get("encoding").toString();
encoding = encoding.replaceAll("\\[\\]", ""); \\removing brackets
答案 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);