Java新手求助:如何从多维ArrayList中提取单个元素?
解决多维ArrayList元素格式化输出问题
嘿,刚学Java遇到这种小问题太正常啦~我来帮你捋清楚怎么改。
你现在的代码直接打印内层的ArrayList<String>对象,Java会默认调用它的toString()方法,所以输出会带上方括号[]。要去掉括号、只输出元素用逗号分隔的话,有两种简单的方法:
方法1:用Java 8+的String.join()(推荐)
这个方法可以直接把集合里的元素用指定分隔符拼接成字符串,非常简洁:
for(ArrayList<String> a : Produkty_form.produkty){ // 用逗号加空格拼接所有元素,去掉方括号 String line = String.join(", ", a); // 如果需要添加静态文本,比如前缀,就改成下面这样: // String line = "产品详情:" + String.join(", ", a); System.out.println(line); area.append(line + "\n"); }
方法2:手动遍历拼接(兼容Java 8之前版本)
如果你的项目还在用Java 7或更早的版本,就手动遍历内层列表的元素,逐个拼接:
for(ArrayList<String> a : Produkty_form.produkty){ StringBuilder sb = new StringBuilder(); for(int i = 0; i < a.size(); i++){ // 不是第一个元素时,先加逗号分隔 if(i != 0){ sb.append(", "); } sb.append(a.get(i)); } String line = sb.toString(); // 同样可以添加静态文本: // String line = "产品信息:" + sb.toString(); System.out.println(line); area.append(line + "\n"); }
这样改完之后,输出就会变成你想要的1, data, category, 100.0, 10, Tue Jan 16 11:52:18 CET 2018, 90.0这种格式啦~如果还要加静态文本,直接在拼接好的字符串前后加上就行。
内容的提问来源于stack exchange,提问作者Sheio
相关产品推荐
相关产品推荐

