如何将Character类型的ArrayList转换为字符串,或移除字符串内的[]字符?
现有ArrayList转字符串的实现方法
你当前的方案完全可以实现需求,把ArrayList<Character>转回字符串有两种常用写法:
方法1:Java 8及以上版本使用Stream
import java.util.stream.Collectors; // 你的原有代码不变,在遍历结束后加这段 String result = filtredChars.stream() .map(String::valueOf) .collect(Collectors.joining());
方法2:通用StringBuilder拼接方案
兼容性更好,性能也更高:
StringBuilder sb = new StringBuilder(filtredChars.size()); for (char c : filtredChars) { sb.append(c); } String result = sb.toString();
更简洁的替代方案
你现在的实现需要额外维护一个ArrayList做中间存储,其实可以省掉这一步直接得到目标字符串,推荐两种更常用的写法:
方案1:直接使用字符串替换(代码最简洁)
用正则匹配[和]直接替换为空即可,注意正则中[是特殊字符需要转义:
String text = "Hell[o Worl]d!"; String result = text.replaceAll("\\[|\\]", "");
方案2:无正则高性能遍历方案
如果不想引入正则解析的额外开销,直接遍历字符串的时候用StringBuilder存结果即可,比你现有的方案少了中间集合的内存占用,效率更高:
String text = "Hell[o Worl]d!"; StringBuilder sb = new StringBuilder(text.length()); for (char c : text.toCharArray()) { if (c != '[' && c != ']') { sb.append(c); } } String result = sb.toString();
内容的提问来源于stack exchange,提问作者Louay GOURRIDA
相关产品推荐
相关产品推荐

