将数组字符列表转换为字符串?
2022-09-01 03:06:10
如何在Java中将a转换为a?ArrayList<Character>
String
该方法将其作为字符串返回 - 我想摆脱括号(etcetera)并将其存储为.List.toString
[a,b,c]
abc
如何在Java中将a转换为a?ArrayList<Character>
String
该方法将其作为字符串返回 - 我想摆脱括号(etcetera)并将其存储为.List.toString
[a,b,c]
abc
您可以循环访问列表并创建字符串。
String getStringRepresentation(ArrayList<Character> list)
{
StringBuilder builder = new StringBuilder(list.size());
for(Character ch: list)
{
builder.append(ch);
}
return builder.toString();
}
将 的容量设置为列表大小是一项重要的优化。如果不这样做,某些调用可能会触发构建器的内部调整大小。StringBuilder
append
顺便说一句,返回 ArrayList 内容的人类可读格式。不值得花时间从中过滤掉不必要的字符。它的实现明天可能会改变,你将不得不重写你的过滤代码。toString()
这里有一个使用Java8流的可能的单行解决方案。
a) 字符串的字符对象列表 :
String str = chars.stream()
.map(e->e.toString())
.reduce((acc, e) -> acc + e)
.get();
b) 字符数组 (字符[] 字符)
String str = Stream.of(chars)
.map(e->new String(e))
.reduce((acc, e) -> acc + e)
.get();
更新(以下评论如下):
a) 字符串的字符对象列表 :
String str = chars.stream()
.map(e->e.toString())
.collect(Collectors.joining());
b) 字符数组 (字符[] 字符)
String str = Stream.of(chars)
.map(e->new String(e))
.collect(Collectors.joining());
请注意,上述解决方案中的步骤将为列表中的每个字符创建一个临时字符串。字符串立即成为垃圾。因此,如果转换的性能是一个相关的问题,则应考虑改用StringBuilder
方法。map(e->e.toString())