如何在Java中将ArrayList<Character>
转换为String
?
List.toString
方法将其作为[a,b,c]
字符串返回-我希望去掉方括号(etcetera)并将其存储为abc
。
发布于 2011-06-13 05:39:10
您可以遍历列表并创建字符串。
String getStringRepresentation(ArrayList<Character> list)
{
StringBuilder builder = new StringBuilder(list.size());
for(Character ch: list)
{
builder.append(ch);
}
return builder.toString();
}
将StringBuilder
的容量设置为列表大小是一个重要的优化。如果不这样做,一些append
调用可能会触发构建器的内部调整大小。
另外,toString()
返回一个人类可读的ArrayList内容格式。不值得花时间从其中过滤掉不必要的字符。它的实现明天可能会改变,你将不得不重写你的过滤代码。
发布于 2016-09-13 16:18:21
您可以使用toString()和RegExp来完成,而不需要任何循环和流:
List<Character> list = Arrays.asList('a', 'b', 'c'); String s = list.toString().replaceAll("[,\\s\\[\\]]", "");
发布于 2019-07-04 11:32:20
使用Joiner
类的join
:
// create character list and initialize
List<Character> arr = Arrays.asList('a', 'b', 'c');
String str = Joiner.on("").join(arr);
System.out.println(str);
使用toString
,然后删除, and spaces
import com.google.common.base.Joiner;
....
<Character> arr = Arrays.asList('h', 'e', 'l', 'l', 'o');
// remove [] and spaces
String str = arr.toString()
.substring(1, 3 * str.size() - 1) //3 bcs of commas ,
.replaceAll(", ", "");
System.out.println(str);
或者使用streams:
import java.util.stream.Collectors;
...
// using collect and joining() method
String str = arr.stream().map(String::valueOf).collect(Collectors.joining());
https://stackoverflow.com/questions/6324826
复制相似问题