List<String> ids = new ArrayList<String>(); ids.add("1"); ids.add("2"); ids.add("3"); ids.add("4");
现在我希望这个列表的输出为1,2,3,4,而不需要 明确地对它进行迭代。
import com.google.common.base.Joiner; Joiner.on(",").join(ids);
或使用 StringUtils:
public static String join(Object[] array, char separator) public static String join(Iterable<?> iterator, char separator)
将提供的数组/迭代器的元素连接到包含提供的元素列表的单个 String 中。
Http://commons.apache.org/proper/commons-lang/javadocs/api-3.3.2/org/apache/commons/lang3/stringutils.html
以下内容:
String joinedString = ids.toString()
会给你一个逗号分隔的列表。
您将需要做一些后期处理来删除方括号,但是不需要太复杂。
使用 Java8:
String csv = String.join(",", ids);
对于 Java7-,有一种肮脏的方式(< em > 注意: 只有在列表 中不插入包含 ", "的字符串时,它才会工作)-显然,List#toString将执行一个循环来创建 idList,但它不会出现在您的代码中:
", "
List#toString
idList
List<String> ids = new ArrayList<String>(); ids.add("1"); ids.add("2"); ids.add("3"); ids.add("4"); String idList = ids.toString(); String csv = idList.substring(1, idList.length() - 1).replace(", ", ",");
如果要将 list 转换为 CSV 格式... ...
List<String> ids = new ArrayList<String>(); ids.add("1"); ids.add("2"); ids.add("3"); ids.add("4"); // CSV format String csv = ids.toString().replace("[", "").replace("]", "") .replace(", ", ","); // CSV format surrounded by single quote // Useful for SQL IN QUERY String csvWithQuote = ids.toString().replace("[", "'").replace("]", "'") .replace(", ", "','");
如果您使用的是 Eclipse 集合(以前的 GS 集合) ,则可以使用 makeString()方法。
makeString()
List<String> ids = new ArrayList<String>(); ids.add("1"); ids.add("2"); ids.add("3"); ids.add("4"); Assert.assertEquals("1,2,3,4", ListAdapter.adapt(ids).makeString(","));
如果可以将 ArrayList转换为 FastList,就可以去掉适配器。
ArrayList
FastList
Assert.assertEquals("1,2,3,4", FastList.newListWith(1, 2, 3, 4).makeString(","));
注意: 我是 Eclipse 集合的提交者。
我有字符串数组列表,我需要转换为逗号分隔的列表,没有空格。ArrayListtoString ()方法添加方括号、逗号和空格。我尝试了下面的正则表达式方法。
List<String> myProductList = new ArrayList<String>(); myProductList.add("sanjay"); myProductList.add("sameer"); myProductList.add("anand"); Log.d("TEST1", myProductList.toString()); // "[sanjay, sameer, anand]" String patternString = myProductList.toString().replaceAll("[\\s\\[\\]]", ""); Log.d("TEST", patternString); // "sanjay,sameer,anand"
请注释更有效的逻辑。 (代码是 Android/Java)
谢谢。
最快的方法是
StringUtils.join(ids, ",");
一班轮(纯爪哇)
list.toString().replace(", ", ",").replaceAll("[\\[.\\]]", "");
关于 Android 的使用:
android.text.TextUtils.join(",", ids);
下面给出的代码可以将 List 转换为逗号分隔的字符串,而无需显式迭代 List,因为您必须创建一个 List 并在其中添加项目,而不是将其转换为逗号分隔的字符串
这段代码的输出将是: Veeru,Nikhil,Ashish,Paritosh
代替 list 的输出[ Veeru,Nikhil,Ashish,Paritosh ]
String List_name; List<String> myNameList = new ArrayList<String>(); myNameList.add("Veeru"); myNameList.add("Nikhil"); myNameList.add("Ashish"); myNameList.add("Paritosh"); List_name = myNameList.toString().replace("[", "") .replace("]", "").replace(", ", ",");
Java8解决方案,如果它不是一个字符串集合:
{Any collection}.stream() .collect(StringBuilder::new, StringBuilder::append, StringBuilder::append) .toString()
在 数组列表上加入/concat & 分开功能:
到 加入/联系的所有数组元素与 逗号(“ ,”)字符串。
List<String> ids = new ArrayList<String>(); ids.add("1"); ids.add("2"); ids.add("3"); ids.add("4"); String allIds = TextUtils.join(",", ids); Log.i("Result", allIds);
到 分开的字符串的所有元素数组与 逗号(“ ,”)。
String allIds = "1,2,3,4"; String[] allIdsArray = TextUtils.split(allIds, ","); ArrayList<String> idsList = new ArrayList<String>(Arrays.asList(allIdsArray)); for(String element : idsList){ Log.i("Result", element); }
成交
如果对象下面有属性,则可以使用下面的代码。
String getCommonSeperatedString(List<ActionObject> actionObjects) { StringBuffer sb = new StringBuffer(); for (ActionObject actionObject : actionObjects){ sb.append(actionObject.Id).append(","); } sb.deleteCharAt(sb.lastIndexOf(",")); return sb.toString(); }